<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://java.sys-con.com"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Features</title>
 <link>http://java.sys-con.com/</link>
 <description>Latest articles from Features</description>
 <language>en</language>
 <copyright>Copyright 2012 Ulitzer.com</copyright>
 <generator>Ulitzer.com</generator>
 <lastBuildDate>Sat, 18 Feb 2012 11:25:08 EST</lastBuildDate>
 <docs>http://backend.userland.com/rss</docs>
 <ttl>10</ttl>
<item>
 <title>Access Control in Multi-Tenant Applications</title>
 <link>http://java.sys-con.com/node/2127996</link>
 <description>Defining &quot;Who sees what&quot; and &quot;who does what&quot; are the two important aspects of access control in any software application.
&quot;Security&quot; is a much larger subject, but this article focuses on just the access control aspects of Security in a software application.
When you build a custom application for a specific customer, the access control policies of the organization are often defined upfront as part of the requirements phase. Depending on the vertical, domain and the specific organizational structure of the business, first the roles are defined. And then each role is given access to a set of screens, forms, pages and reports. What role A sees might be different from what role B sees. What role A can do could be different from what role B is allowed to do. Of course, certain areas in the application can be accessed by multiple roles. While building software products (used by several customers), the roles are often generalized and predefined. The various access control policies of the product are often hard coded in to the roles. The customer will be able to assign one or more roles to their users.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2127996&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 15 Jan 2012 11:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2127996</guid>
</item>
<item>
 <title>Patterns for Building High Performance Applications</title>
 <link>http://java.sys-con.com/node/2116436</link>
 <description>Performance is one word that is used to describe multiple scenarios when talking about application performance. When someone says I need a High Performance Application, it might mean any/all of the following:
Low web latency application ( meaning low page loading times)
Application that can serve ever increasing number of users (scalability)
Application that does not go down (either highly available or continuously available)
For each of the above, as an architect you need to dig deeper to find out what the user is asking for. With the advent of cloud, every CIO is looking to build applications that meet all of the above scenarios. With the advent of elastic compute, one tends to think that by throwing hardware to the application, we may be able to achieve all of the above objectives.
The patterns employed to achieve the above scenarios at times are different and it is important to find the right approach to the solution that meets the above objectives. We will examine some of the common patterns that can help us to achieve the objectives&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2116436&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 09 Jan 2012 08:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2116436</guid>
</item>
<item>
 <title>Book Excerpt: Introducing HTML5</title>
 <link>http://java.sys-con.com/node/2068062</link>
 <description>HTML5 is a draft specification for the next major iteration of HTML. It represents a break from its predecessors, HTML4 and XHTML. Some elements have been removed and it is no longer based on SGML, an older standard for document markup. HTML5 also has more allowances for incorrect syntax than were present in HTML4. It has rules for parsing to allow different browsers to display the same incorrectly formatted document in the same fashion. There are many notable additions to HTML, such as native drawing support and audiovisual elements. In this excerpt, we discuss the features added by HTML5 and the associated JavaScript APIs.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2068062&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 15 Dec 2011 15:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2068062</guid>
</item>
<item>
 <title>Book Excerpt: Java Application Profiling Tips and Tricks - Part 2</title>
 <link>http://java.sys-con.com/node/2088381</link>
 <description>In early JVM releases, it was common to delegate Java monitor operations directly to operating system monitors, or mutex primitives. As a result, a Java application experiencing lock contention would exhibit high values of system CPU utilization since operating system mutex primitives involve system calls. In modern JVMs Java monitors are mostly implemented within the JVM in user code rather than immediately delegating them to operating system locking primitives. This means Java applications can exhibit lock contention yet not consume system CPU. Rather, these applications first consume user CPU utilization when attempting to acquire a lock. Only applications that experience severe lock contention may show high system CPU utilization since modern JVMs tend to delegate to operating system locking primitives as a last resort. A Java application running in a modern JVM that experiences lock contention tends to show symptoms of not scaling to a large number of application threads, CPU cores, or a large number of concurrent users. The challenge is finding the source of the lock contention, that is, where are those Java monitors in the source code and what can be done to reduce the lock contention.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2088381&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 07 Dec 2011 12:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2088381</guid>
</item>
<item>
 <title>Book Excerpt: Java Application Profiling Tips and Tricks</title>
 <link>http://java.sys-con.com/node/2067673</link>
 <description>Most Java performance opportunities fall into one or more of the following categories:
Using a more efficient algorithm. The largest gains in the performance of an application come from the use of a more efficient algorithm. The use of a more efficient algorithm allows an application to execute with fewer CPU instructions, also known as a shorter path length. An application that executes with a shorter path length generally executes faster. Many different changes can lead to a shorter path length. At the highest level of the application, using a different data structure or modifying its implementation can lead to a shorter path length. Many applications that suffer application performance issues often use inappropriate data structures. There is no substitute for choosing the proper data structure and algorithm. As profiles are analyzed, take notice of the data structures and the algorithms used. Optimal performance can be realized when the best data structures and algorithms are utilized.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2067673&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 25 Nov 2011 09:45:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2067673</guid>
</item>
<item>
 <title>Best Practices for Business Transaction Management</title>
 <link>http://java.sys-con.com/node/2039729</link>
 <description>The term Business Transactions and Business Transaction Management is widely used in the industry but it’s not always well understood what we really mean by it. The BTM Industry Portal provides some good articles on this topic and is definitely recommended to check out. The general goal is to answer business-relevant questions that business owners have for application owners: &quot;How much revenue is generated by a certain products?&quot;, &quot;What are my conversion and bounce rates and what impacts them?&quot; or “Do we meet our SLAs to our premium account users?”
Challenge 1: Contextual Information Is More than just the URL
In order to answer these questions we need information captured from the underlying technical transactions that get executed by your applications when users interact with your services/web site. Knowing the accessed URL, its average response time and then mapping it to a Business Transaction is the simplest form of Business Transaction Management – but doesn’t work in most cases because modern applications don’t pass the whole business transaction context in the URL. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/2039729&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 28 Oct 2011 11:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/2039729</guid>
</item>
<item>
 <title>Open Source ROI with Less Risk</title>
 <link>http://java.sys-con.com/node/1986889</link>
 <description>It’s a scenario with which many Java developers are all too familiar – and one which many fear. You log on to the network or arrive at the office to discover your Chief Security or Compliance Officer, Application Manager or even a VP of Sales and Marketing in a state of panic. A commonly used open source component has a serious security vulnerability that may expose your client-facing applications to attack. Even worse, the flaw was identified a few weeks ago, but your organization has just heard about it.  
The questions and accusations fly: “Why are we using open source components for our critical business applications?!” “Why don’t we just rip out this component and replace it with something more secure?” “Do you have any idea what will happen if people discover that our applications have a security flaw?!” “This could negatively impact revenue and our reputation!” And, of course, “What are you going to do to fix this – and ensure it never happens again?!” &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1986889&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 20 Sep 2011 14:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1986889</guid>
</item>
<item>
 <title>New Features in JavaServer Faces 2.0 </title>
 <link>http://java.sys-con.com/node/1952954</link>
 <description>JavaServer Faces (JSF) technology is used for developing server-side user interfaces (UI) for Java EE applications. JSF 2.0 architecture has introduced several new features, most of which we shall discuss in this article. The salient new features in JSF 2.0 are State Saving, Facelets, Navigation, Validations, Scopes, AJAX, Resource Handling, Composite Components, View Params, Client Behaviors, Event Handling, and Exception Handling. 
In JSF 1.2 the full component tree is saved/restored. Attributes are also stored and restored. Saving and restoring the full state has performance and memory issues as the complete state has to be saved and restored and the size of the state saved could be large. In JSF 1.2 each UIComponent saves/restores its own state in the component hierarchy using saveState and resoreState methods in StateHolder. If state saving were to be optimized, it would have to be added to each component class in the hierarchy. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1952954&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 01 Sep 2011 13:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1952954</guid>
</item>
<item>
 <title>Externalizing Fine-Grained Authorization from Applications</title>
 <link>http://java.sys-con.com/node/1923919</link>
 <description>The recent spike in insider threats, coupled with a rise in compliance considerations, has forced organizations to ensure only authorized users access sensitive application functionality and data. Historically, user entitlements or authorization logic has been embedded inside an application. For example, if the user of an application meets specific conditions, such as a specific role, access to that application function will be granted at runtime. But if the definition of specific authorization conditions changes over time, then the application developer needs to modify the application’s source code, test, and re-deploy the application.
Suppose a homegrown portal application must present a sensitive piece of customer information such as a Social Security Number (SSN) when a service representative views a customer’s profile. It is determined that in order to ensure compliance with various privacy regulations, only directors and senior managers may be able to view a customer’s SSN. A decision has to be dynamically made whenever the application must show an SSN as to whether the current user may view the actual data or some default value (e.g., “XXX-XX-XXXX”). The decision must take into account the user’s job title. A dozen parts of the application that can display a customer’s SSN mean a dozen places for this business logic to be applied.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1923919&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 25 Aug 2011 10:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1923919</guid>
</item>
<item>
 <title>SOA-Powered B2B: A Long-Term Strategy</title>
 <link>http://java.sys-con.com/node/1908787</link>
 <description>If you are in IT, there is good chance that you are maintaining multiple B2B integration systems for data exchange and translation. Every IT leader has considered consolidating these products into a single B2B suite to reduce costs and improve supply chain agility. Historically, each B2B system has acted like a “black box,” providing little visibility and integration into the IT governance tools.
This article outlines the benefits of a service-oriented architecture (SOA)-enabled approach to B2B and why it’s a better long-term strategy.
As more and more companies adopt SOA and realize the importance of governance, it’s becoming critical to include the B2B suites into the SOA fabric and govern them as any other IT system. A well-thought-out SOA-based approach to B2B not only reduces the B2B expense but also provides SOA benefits such as improved governance, compliance, reuse and the ability to extend B2B processes to other IT applications.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1908787&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 24 Aug 2011 13:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1908787</guid>
</item>
<item>
 <title>Valve, JAAS and Filter in Tomcat</title>
 <link>http://java.sys-con.com/node/1876662</link>
 <description>Tomcat is a widely popular lightweight application server. When securing Tomcat web applications, Valve, JAAS and Filter are used in various scenarios. The challenges for developers are when to use each of these methods and how to integrate them together if more than one method is chosen. For example, the WebSeal agent discussed in the article [1] uses Valve. If a customer needs to integrate WebSeal and its own JAAS-based authentication module, they will need to know how to configure Tomcat to use both the WebSeal Agent Valve and the JAAS module and how to pass information between them. 
In this article, we will explain the concepts of Valve, JAAS and Filter, and their relationships such as the order that they get called. Through an example application, we will explain how you can use them together and pass information among them for an authentication process. How to configure and run the example application using Tomcat 7 will also be discussed. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1876662&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 14 Aug 2011 06:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1876662</guid>
</item>
<item>
 <title>Why Perfomance Management Is Easier in Public than On-Premise Clouds</title>
 <link>http://java.sys-con.com/node/1853957</link>
 <description>Performance is one of the major concerns in the cloud. But the question should not really be whether or not the cloud performs, but whether the Application in question can and does perform in the cloud. The main problem here is that application performance is either not managed at all or managed incorrectly and therefore this question often remains unanswered. Now granted, performance management in cloud environments is harder than in physical ones, but it can be argued that it is easier in public clouds than in on-premise clouds or even a large virtualized environment. How do I come to that conclusion? Before answering that let’s look at the unique challenges that virtualization in general – and clouds in particular – pose to the realm of APM.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1853957&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 11 Aug 2011 10:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1853957</guid>
</item>
<item>
 <title>Rethink SOA - A Recipe for Business Transformation</title>
 <link>http://java.sys-con.com/node/1870465</link>
 <description>One sure fire way to keep budget and buzz away from your projects is for you and your department to be associated with incremental improvement. Projects can generally be classified into two categories. The first is “business transformation,” which includes projects that generate excitement.  The second category is for projects that fund incremental improvement to what is frequently considered the “cost center,” often with a strong ROI but seriously lacking when it comes to excitement… And without excitement comes underfunded and understaffed projects likely to underachieve the goals they set out to accomplish.
So where does SOA belong? Is it one of the most powerful weapons in the business transformation arsenal or is it merely a tool for the cost center to provide incremental improvement? If we look at the traditional benefits of SOA, such as re-use of services, agility, scalability, and visibility, then SOA brings incremental improvement to the infrastructure. Although this incremental improvement can provide impressive returns that easily justify the investment, they are still more incremental than transformative to the business. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1870465&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 20 Jul 2011 11:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1870465</guid>
</item>
<item>
 <title>The History of Programming</title>
 <link>http://java.sys-con.com/node/1879986</link>
 <description>I’ve been programming since around 1982, first using an Apple in high school and then finally getting my first computer, the Timex Sinclair 1000 (2k of ROM and 2k of RAM), that same year. Both computers came with a form of the BASIC programming language and it was the start of my lifelong pursuit of trying to understand computers.
A few months ago, one of my good friends called and asked if I had a PowerPoint presentation on the history of programming. When I checked my extensive list of presentations, I noticed that I didn’t have one, so that led me on a journey to create a presentation on that very subject. 
However, where to start? Maybe 1940 or 1950? After thinking about it for a while I realized that’s really not where programming started. You need to go way, way back to really understand the programming concept and where it came from. This led me to envision the world as a dark, almost black place with a small white light in the center… really the only light around was the small white light in the center and that light represented the idea: there has to be a better, more accurate, way to count and keep track of things for commerce.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1879986&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 27 Jun 2011 12:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1879986</guid>
</item>
<item>
 <title>Why Response Times Are Often Measured Incorrectly</title>
 <link>http://java.sys-con.com/node/1866141</link>
 <description>Response times are in many – if not in most – cases the basis for performance analysis. When they are within expected boundaries everything is ok. When they get to high we start optimizing our applications.
So response times play a central role in performance monitoring and analysis. In virtualized and cloud environments they are the most accurate performance metric you can get. Very often, however, people measure and interpret response times the wrong way. This is more than reason enough to discuss the topic of response time measurements and how to interpret them. Therefore I will discuss typical measurement approaches, the related misunderstandings and how to improve measurement approaches.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1866141&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 25 Jun 2011 13:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1866141</guid>
</item>
<item>
 <title>OSGi Application Testing with Tycho</title>
 <link>http://java.sys-con.com/node/1839682</link>
 <description>The OSGi framework is a popular platform for developing multifunctional desktop systems, enterprise systems and complex applications. 
OSGi uses a modular approach where each bundle is regarded as a relatively independent and separate unit. The framework controls maintenance-based tasks such as managing interactions between bundles, resolving dependencies, and managing lifecycles. Therefore, programmers can reallocate their time with less routine work and concentrate solely on solution development.
However, testing such applications is a real problem. It is more demanding than regular Java application testing: there is a need to test interactions between the bundles, and the tests must occur within a real environment. In this case, the test must run inside the OSGi platform; thereby creating the need for specialized test frameworks.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1839682&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 19 May 2011 11:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1839682</guid>
</item>
<item>
 <title>SQL Transparent Hierarchical Processing of Relational, XML and IMS Data</title>
 <link>http://java.sys-con.com/node/1764314</link>
 <description>Current SQL support of relational, XML and hierarchical legacy data such as IMS is driven by flattening the hierarchical data. This is needed in order to integrate it naturally with relational (flat) data so that it can be processed relationally. Unfortunately, this strips out the natural semantics in hierarchical data which has the capability to dynamically increase the value of the data being processed and to perform powerful hierarchical operations. The SQL-92 standard introduced the LEFT Outer Join offering a powerful alternative that can be used to perform full hierarchical processing naturally and inherently. This enables relational data to be integrated seamlessly and transparently at a full hierarchical processing level with XML, IMS and other forms of legacy hierarchical data. This means there is no data loss for the integration of hierarchical and relational data while increasing the level of powerful automatic hierarchical operations. These will be shown in this article.  &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1764314&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 08 Apr 2011 10:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1764314</guid>
</item>
<item>
 <title>OSGi: An Overview of Its Impact on the Software Lifecycle</title>
 <link>http://java.sys-con.com/node/1765471</link>
 <description>OSGi technology brings a number of much needed benefits to the Java enterprise application market, and is disruptive in that it impacts the software development, deployment, and management practices of many organizations. OSGi impacts deployment given the shared, modular nature of OSGi, meaning application code must be written differently to capitalize on the benefits of OSGi. Equally important, application management processes need to be adjusted, given the highly shared nature of OSGi modules across many applications. This article provides a high-level overview of OSGi, and the impact this framework is having on the software lifecycle.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1765471&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 25 Mar 2011 13:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1765471</guid>
</item>
<item>
 <title>Living on the Edge of Mobile Development</title>
 <link>http://java.sys-con.com/node/1719019</link>
 <description>Which mobile device should I target for my application?  That&#039;s one of the first questions you need to answer as a mobile developer.  You might select the device based on personal preference or what looks cool today.  The problem is that mobile technology choices are diverse and evolving quickly.  The tools and languages used to develop native applications vary wildly and you probably cannot afford to learn them all.  Chances are you want to find a way to replicate your application across multiple devices while minimizing your investment.  How can that be done?&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1719019&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 17 Mar 2011 15:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1719019</guid>
</item>
<item>
 <title>Naturally Increasing Data Value with Hierarchical Structures</title>
 <link>http://java.sys-con.com/node/1745911</link>
 <description>Hierarchical structures have an inherent ability for significant data value increases beyond the data collected.  This will be shown to exist in hierarchical structures and even more powerfully in their natural hierarchical processing capabilities. These will demonstrate flexible and efficient ways to increase data value automatically and will be discussed in this article. SQL will be used to perform a wide range of hierarchical processing operations that easily demonstrate these increasing data value capabilities.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1745911&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 10 Mar 2011 07:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1745911</guid>
</item>
<item>
 <title>Dataflow Programming: A Scalable Data-Centric Approach to Parallelism</title>
 <link>http://java.sys-con.com/node/1678918</link>
 <description>There are two major drivers behind the need to embrace parallelism: the dramatic shift to commodity multicore CPUs, and the striking increase in the amount of data being processed by the applications that run our enterprises. These two factors must be addressed by any approach to parallelism or we will find ourselves falling short of resolving the crisis that is upon us. While there are data-centric approaches that have generated interest, including Map-Reduce, dataflow programming is arguably the easiest parallel strategy to adopt for the millions of developers trained in serial programming.
The blog at &lt;a href=&quot;http://www.thevirtualcircle.com/2010/01/why-should-we-care-about-parallel-processing/&quot; title=&quot;http://www.thevirtualcircle.com/2010/01/why-should-we-care-about-parallel-processing/&quot;&gt;http://www.thevirtualcircle.com/2010/01/why-should-we-care-about-paralle...&lt;/a&gt; gives a nice summary of why parallel processing is important.
Let’s start with an overview of the supported parallelism available today in modern processors. First there is processor-level parallelism involving instruction pipelining and other techniques handled by the processor. These are all optimized by compilers and runtime environments such as the Java Virtual Machine. This goodness is available to all developers without much effort on our part.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1678918&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 01 Mar 2011 15:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1678918</guid>
</item>
<item>
 <title>Five Signs You Need HTML5 WebSockets</title>
 <link>http://java.sys-con.com/node/1551694</link>
 <description>HTML5 WebSocket is an important new technology that helps you build engaging, interactive, real-time web applications quickly and reliably. Sure, HTML5 WebSockets may be the best thing since sliced bread, but is this new technology right for you?
This article identifies five types of web applications that will benefit from HTML5 WebSockets. So, without further ado... give me five!
1. Your web application has data that must flow bi-directional simultaneously.
2. Your web application must scale to large numbers of concurrent users. 
3. Your web application must extend TCP-based protocols to the browser. 
4. Your web application developers need an API that is easy to use. 
5. Your web application must extend SOA over the Web and in the Cloud.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1551694&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 23 Jan 2011 05:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1551694</guid>
</item>
<item>
 <title>Thought Process on Upgrading WebLogic Server to 11g</title>
 <link>http://java.sys-con.com/node/1658429</link>
 <description>Modern enterprise IT infrastructure must keep pace with dynamic needs. As business changes, it allows customers to react quickly to maintain a competitive edge in the marketplace, often by leveraging new technologies to improve the bottom-line performance. Oracle WebLogic Server11g provides customers with expanded capabilities for interoperability, improvements in implementation and maintenance, and a wide array of performance enhancements. Customers can gain significant cost savings in operations, development and license management.
Based on our experience acquired in a large-scale enterprise J2EE project, here are some of the best practices, known issues, and practical tips to make the upgrading work efficiently. This article contains information for technical managers, administrators and developers looking for the latest business and technical details about WebLogic upgradation.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1658429&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 28 Dec 2010 11:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1658429</guid>
</item>
<item>
 <title>Using HTML5 Application Cache to Create Offline Web Applications</title>
 <link>http://java.sys-con.com/node/1643966</link>
 <description>HTML5 introduces Application Cache, a new feature that enables you to make web apps and sites available offline. The new specification also provides an easy way to prefetch some or all of your web app’s assets (HTML files, images, CSS, JavaScript, and so on) while the client is still online. During this caching process, files are stored in an application cache, where they sit ready for future offline use.
Compare this to regular browser caching, in which pages that you visit are cached in the browser’s cache based on server-side rules and client-side configuration. But—even if web pages are cached normally, this does not provide a reliable way for you to access pages while you’re in offline mode (in an airplane, for example). In addition, an application cache can cache pages that have not been visited at all and are therefore typically unavailable in the regular browser cache. Prefetching files can even speed up your site’s performance, though you are of course using bandwidth to download those files initially.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1643966&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 22 Dec 2010 13:45:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1643966</guid>
</item>
<item>
 <title>Java Thread Dumps</title>
 <link>http://java.sys-con.com/node/1611555</link>
 <description>Software maintenance is a tedious and challenging job. As long as the software functions as expected, it looks great. Imagine the situation, your pager keeps buzzing in the midnight (Not a happy feeling, right?).
Any software system, no matter how well it has been built and quality tested might get into run-time performance issues. The reasons can be within the functional boundary or can be from the external environment. Software systems are built on certain assumptions and pre-conceived notions. However, when they go live, the assumptions may turn out to be false causing the system to malfunction.
In enterprise J2EE systems which generally have very large user base and involve interactions between heterogeneous systems, one of the general runtime issues reported is the system slowdown or system &quot;hang&quot;. In such situations, the general trouble shooting pattern would be to analyze the Java thread dumps to isolate the threads which are causing the slow-down or hang. This article discusses the Java stack traces; anatomy of Java Threads and how to read thread dumps in general.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1611555&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 16 Nov 2010 11:00:00 EST</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1611555</guid>
</item>
<item>
 <title>Generating Spring ORM Classes – Part 6</title>
 <link>http://java.sys-con.com/node/1557486</link>
 <description>In this step, you will configure the project to use Spring framework and generate Spring ORM classes to access the entities created earlier. 
The tasks you will complete in this step are: Add Spring Facet to project, Generate Spring ORM classes, Review the Spring service beans and configuration, 
and Add Spring Facet to project.
1. Right click on the project oepe-jpa-tutorial. Select Properties, click Project Facets, and check Spring Facet. Click Further configuration.. link. Select the Spring library that will be used with this project and click finish to install Spring Facet. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1557486&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 06 Oct 2010 09:10:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1557486</guid>
</item>
<item>
 <title>Dynamic Clustering for J2EE Cloud Environments</title>
 <link>http://java.sys-con.com/node/1542268</link>
 <description>Cloud computing is one of the emerging paradigms in today’s computing world. One of the main advantages of migrating to the cloud is its elastic nature. Elasticity allows dynamic provisioning and de-provisioning of resources according to the application’s workload requirement.
 In a traditional on-premise J2EE infrastructure, information about the application server and web server resources are available during deployment. Clustering of such an infrastructure to achieve scalability is much simpler since the information about resources is known beforehand. But in a cloud environment, because of its elastic nature, resources get provisioned and de-provisioned dynamically based on the workload. So a j2ee cloud environment has challenges like reconfiguring automatically for the addition/removal of application server instances to/from the cluster. One solution from the open source space is to use Apache Httpd web server with mod_cluster load balancing module and JBoss application server.
The article will discuss the features of mod_cluster which enable it to operate in a cloud environment and also the steps to set up a highly scalable j2ee cloud environment in your lab.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1542268&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 22 Sep 2010 06:26:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1542268</guid>
</item>
<item>
 <title>Analyzing Load on Apache Web Server</title>
 <link>http://java.sys-con.com/node/1540238</link>
 <description>A web server plays an increasingly important role in the computing world as the world has shifted away from traditional stand-alone desktop computing to Internet&#039;s Client-Server and its variants based computing paradigm. Almost everything on networks is consumed either by using web services or web-pages, for all of which, a web-server is integral. As such, it becomes imperative for organizations to be able to finely monitor their servers&#039; load usage and average performance over different times of day and according to the kind of resources hosted on the server. This raises the need for a solution through which organizations and individuals can monitor their web servers&#039; performance to an arbitrary level of granularity depending on their needs.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1540238&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 21 Sep 2010 14:22:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1540238</guid>
</item>
<item>
 <title>Transactions in a JPA World </title>
 <link>http://java.sys-con.com/node/1536242</link>
 <description>The use of transactions is a cornerstone when building database applications. However in our daily work, we often do not really care much about them. In many cases they are handled implicitly for us by the (J EE) container or application framework – such as Spring – we are using. We rely on these frameworks to do a lot of the heaving lifting around transactions. At a pure JPA level there is a lot of transaction-related logic going on under the hood. This article discusses transactions at the JPA and database (JDBC) layer and how they play together and affect the functionality and performance of our applications.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1536242&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 20 Sep 2010 13:52:58 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1536242</guid>
</item>
<item>
 <title>Finding the Flaws of the Whole, Not Just the Flaws of the Parts</title>
 <link>http://java.sys-con.com/node/1530552</link>
 <description>It would seem like the last thing we need in SAP systems is more metrics. Automated solutions that investigate, monitor and track ERP systems are common, so why are major corporations increasingly employing automated metrics for SAP systems?
Like all systems that span the enterprise, SAP systems suffer from the “six blind men and the elephant” problem – each man is able to envision his own part of the elephant, but putting together a picture of the whole animal is a problem. It is this “whole is greater than the sum of its parts” view that SAP developers need to get their arms around.
In what has become an all too frequent post-customization scenario, SAP developers are called to fix a transaction performance problem. Usually they find that availability is great, there’s nothing wrong with the code – no odd changes – but somehow latency is in the tank. So what’s wrong?&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1530552&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 15 Sep 2010 12:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1530552</guid>
</item>
<item>
 <title>Exploring Persistence Settings - Part 5</title>
 <link>http://java.sys-con.com/node/1469182</link>
 <description>In Part 4 I discussed the Oracle Enterprise Pack for Eclipse and how it allows you to view, create, and manage JPA entity relationships. The Entity Editor provides a centralized view of all entity relationships, allows you to modify entity properties, and allows you to navigate between the object model, mapping associations, and database schema layers. 
In Part 5, I will explore persistence settings. The persistence.xml file defines the context for JPA persistence. In this step, you will use the JPA Persistence Configuration Editor to explore the persistence.xml file for your JPA web project. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1469182&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 21 Jul 2010 10:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1469182</guid>
</item>
<item>
 <title>Seven Rules to Improve Your Application Performance Practices </title>
 <link>http://java.sys-con.com/node/1449816</link>
 <description>In this article I discuss the seven most important steps to improve your application performance practices. These simple-to-follow practices will help you to improve the way you deal with application performance. Besides eventually improving the performance of your applications it will help you to avoid playing the classical blame game which normally happens when something goes wrong&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1449816&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 30 Jun 2010 16:48:02 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1449816</guid>
</item>
<item>
 <title>Selenium Tests for Automated JavaScript/AJAX Performance Analysis</title>
 <link>http://java.sys-con.com/node/1422470</link>
 <description>With more than 3 million downloads, Selenium is the world’s most popular functional testing framework. It allows web developers and QA professionals to automatically test how an application functions on multiple browsers, such as Firefox, Internet Explorer and Chrome and across operating systems, such as different versions of Windows and Mac OS.

The FREE dynaTrace AJAX Edition on the other side is probably the best web site performance analysis tool for Internet Explorer 6, 7 and 8.  Here is what John Resig, Creator of jQuery has to say about it: “I’m very impressed with dynaTrace AJAX Edition’s ability ...&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1422470&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 17 Jun 2010 14:27:52 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1422470</guid>
</item>
<item>
 <title>A Simple Approach to Complex Event Processing</title>
 <link>http://java.sys-con.com/node/1433413</link>
 <description>What is an event? Generally speaking, an event is an occurrence that brings about significant change in the state of an object from a certain point of view. For example, the “sunrise” is an event that is defined from the perspective of an earthling. Yet from the perspective of an alien, Earth’s sunrise is not a sunrise at all, but merely a lonely planet’s celestial rotation. On a simple scale, we can view the change of time as an event in itself. Consider a sun dial’s interpretation of time. While a sun dial doesn’t move, the forces of time act upon the object, thus causing an event. 
The former describes simple events, or a singular event defined from the perspective of its onlooker, whereas complex events are the product of an onlooker’s interpretation of a series of events. The same event can be defined as either “complex” or “simple” depending on its context. For example, the Siberian spring can be distinguished as a simple event if one learns of it from a newspaper. The same event would be considered complex if taken from the perspective of a Siberian wolf that does not read newspapers, but acknowledges spring’s arrival due to a number of sub-events, such as rising air temperatures, thawing snow, and leaves appearing on the trees.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1433413&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 16 Jun 2010 10:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1433413</guid>
</item>
<item>
 <title>Managing Persistent Entities with the JPA Persistence Entity Editor</title>
 <link>http://java.sys-con.com/node/1428021</link>
 <description>Oracle Enterprise Pack for Eclipse allows you to view, create, and manage JPA entity relationships. The Entity Editor provides a centralized view of all entity relationships, allows you to modify entity properties, and allows you to navigate between the object model, mapping associations, and database schema layers. 
As described previously, the Entity Editor displays relationship diagrams for entities defined in the project. &lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1428021&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 12 Jun 2010 11:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1428021</guid>
</item>
<item>
 <title>Is There a Business Case for Application Performance?</title>
 <link>http://java.sys-con.com/node/1422473</link>
 <description>We all know that slow performance – and service disruption even more – affects our business services and eventually our revenue. At the same time we say that major parts of companies are not willing to invest in performance. In this article I will discuss why we find ourselves in this paradox and how to escape it. dynaTrace recently conducted a study on performance management in large and small companies. The quick facts paint a horrible picture. 6o percent of the companies admit that they do not have any performance management processes installed or what they have is ineffective. Half of the companies who answered that they have performance management processes admitted that they are doing it only in a reactive way when problems occur. One third of all companies said that management is not supporting performance management properly. From this data we can obviously conclude that performance management is not a primary interest in most companies.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1422473&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 10 Jun 2010 16:02:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1422473</guid>
</item>
<item>
 <title>Developers Think Functionality</title>
 <link>http://java.sys-con.com/node/1402999</link>
 <description>Two weeks ago I co-hosted a Webinar with one of our users – Bill Mar, Director of Engineering Services from SmithMicro Software. SmithMicro provides the backbone of our digital life by connecting different digital devices together. In his role, Bill works in the Wireless Business unit working on Voice-related services, e.g.: VoiceSMS or Visual Voicemail – services that we’ve all become used to since we run around with smart phones such as the iPhone or Blackberry.

Bill talked about how SmithMicro had to move towards Proactive Performance Management as the company and the user base started to grow. In his presentation he made an interesting but bold statement: Developers Think Functionality – But Less About Scalability.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1402999&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 20 May 2010 13:01:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1402999</guid>
</item>
<item>
 <title>Behind the Scenes of ASP.NET MVC 2</title>
 <link>http://java.sys-con.com/node/1381566</link>
 <description>With Visual Studio 2010, Microsoft is shipping the next version of the popular ASP.NET MVC Framework with its IDE. A year ago I blogged about my findings when getting my hands on the first version of ASP.NET MVC. The MVC Framework provides really nice features that make it very easy to build web applications on top of ASP.NET. The updated support in Visual Studio also makes it very appealing to choose MVC instead of traditional ASP.NET.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1381566&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 13 May 2010 08:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1381566</guid>
</item>
<item>
 <title>Unveiling the java.lang.Out OfMemoryError</title>
 <link>http://java.sys-con.com/node/1229281</link>
 <description>When we encounter a java.lang.OutOfMemoryError, we often find that Java heap dumps, along with other artifacts, are generated by the Java Virtual Machine. If you feel like jumping right into a Java heap dump when you get a java.lang.OutOfMemoryError, don’t worry, it’s a normal thought. You may be able to discover something serendipitously, but it’s not always the best idea to analyze Java heap dumps, depending on the situation you are facing. We first need to investigate the root cause of the java.lang.OutOfMemoryError.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1229281&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 08 May 2010 06:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1229281</guid>
</item>
<item>
 <title>Better Caching Helps Frankfurt’s Airport Website to Handle More Load...</title>
 <link>http://java.sys-con.com/node/1374029</link>
 <description>Along with so many others I am stranded in Europe waiting for my flight back to the United States right now. The Volcano not only impacts flights across Europe but also impacts web sites of airports, airlines and travel agencies around the world. Checking my flight status on Sunday was almost impossible. The website of Germans largest airport – Frankfurt am Main – was hardly reachable. No wonder as I assume that their page just got hammered by thousands of additional page requests of frustrated travellers. Now it’s Tuesday and the website is back to “almost acceptable” response times. Time for me to analyze the current web site as I’ve done with others such as vancouver2010, utah.travel.com or masters.com.&lt;p&gt;&lt;a href=&quot;http://java.sys-con.com/node/1374029&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 29 Apr 2010 16:16:27 EDT</pubDate>
 <guid isPermaLink="true">http://java.sys-con.com/node/1374029</guid>
</item>
</channel>
</rss>

