<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>ESP – Product Engineering – Platform and Software Products</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/" />
    <link rel="self" type="application/atom+xml" href="http://www.infosysblogs.com/engineering-software/atom.xml" />
    <id>tag:www.infosysblogs.com,2010-03-19:/engineering-software//11</id>
    <updated>2012-01-17T15:18:10Z</updated>
    <subtitle>Infosys delivers concept-to-market software engineering services across the engineering value chain. Our blog will discuss the latest trends in software product engineering, outsourcing, technologies, and address business challenges. </subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.34-en</generator>

<entry>
    <title>SQL Server Query and Transact SQL Performance Tuning</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2012/01/sql_server_query_and_transact.html" />
    <id>tag:www.infosysblogs.com,2012:/engineering-software//11.5515</id>

    <published>2012-01-17T12:05:29Z</published>
    <updated>2012-01-17T15:18:10Z</updated>

    <summary>In Applications where SQL Server is used as a back-end for data storage and manipulation purposes, there are various reasons for SQL Queries or Transact SQL Statements or Code running slow when the Application is executed in a Production Server Environment. This article talks about some basic tools and techniques that can be used for tuning such applications at the Query and T-SQL Level</summary>
    <author>
        <name>Krishnaraj Valthajamana</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="queryoptimization" label="Query Optimization" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sqlperformancetuning" label="SQL Performance Tuning" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sqlprofiler" label="SQL Profiler" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sqlserver" label="SQL Server" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tsql" label="T-SQL" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="transactsql" label="Transact SQL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-US</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:EnableOpenTypeKerning/>
   <w:DontFlipMirrorIndents/>
   <w:OverrideTableStyleHps/>
   <w:UseFELayout/>
  </w:Compatibility>
  <w:DoNotOptimizeForBrowser/>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-US</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:EnableOpenTypeKerning/>
   <w:DontFlipMirrorIndents/>
   <w:OverrideTableStyleHps/>
   <w:UseFELayout/>
  </w:Compatibility>
  <w:DoNotOptimizeForBrowser/>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-US</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:EnableOpenTypeKerning/>
   <w:DontFlipMirrorIndents/>
   <w:OverrideTableStyleHps/>
   <w:UseFELayout/>
  </w:Compatibility>
  <w:DoNotOptimizeForBrowser/>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">In Applications where SQL Server is
used as a back-end for data storage and manipulation purposes, there are
various reasons for SQL Queries or Transact SQL Statements or Code running slow
when the Application is executed in a Production Server Environment. Some of
the reasons for slow running queries and updates are:</span></p>

<ul type="disc"><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list .5in"><span style="font-family:
     &quot;Arial&quot;,&quot;sans-serif&quot;">Low network speed or slow network communication.</span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list .5in"><span style="font-family:
     &quot;Arial&quot;,&quot;sans-serif&quot;">Inadequate memory in the server computer or not
     enough memory available for SQL Server.</span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list .5in"><span style="font-family:
     &quot;Arial&quot;,&quot;sans-serif&quot;">Improper indexing in database.</span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list .5in"><span style="font-family:
     &quot;Arial&quot;,&quot;sans-serif&quot;">Lack of usage of database statistics.</span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list .5in"><span style="font-family:
     &quot;Arial&quot;,&quot;sans-serif&quot;">Lack of proper database partitioning. </span></li></ul>

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">To facilitate development of
applications with reliable and faster performance, there are some basic SQL
Server Tools and Techniques to enhance the Query and Transact SQL Performance.</span></p>

<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-US</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:EnableOpenTypeKerning/>
   <w:DontFlipMirrorIndents/>
   <w:OverrideTableStyleHps/>
   <w:UseFELayout/>
  </w:Compatibility>
  <w:DoNotOptimizeForBrowser/>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->]]>
        <![CDATA[<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-US</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:EnableOpenTypeKerning/>
   <w:DontFlipMirrorIndents/>
   <w:OverrideTableStyleHps/>
   <w:UseFELayout/>
  </w:Compatibility>
  <w:DoNotOptimizeForBrowser/>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">Tools like <b><span style="color:#1F497D;
mso-themecolor:text2">Performance Monitor</span></b> and <b><span style="color:#1F497D;mso-themecolor:text2">SQL Server Profiler</span></b> can
be used to monitor the Performance of SQL Server and non-SQL related
components. Some of the SQL Server related components and events that are
monitored are Events related to SQL Server Service Broker Components, SQL
Server service Components, Database Operation Events, Cursor Events,
Transaction Events , Replication Events etc. Other non-SQL components include
System Memory, Processor, Other Application and System Processes, System
Security etc.</span></p>

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">Few techniques to determine slow
running queries and Transact SQL statement include using dynamic management
views - <b><span style="color:#1F497D;mso-themecolor:text2">sys.dm_exec_query_stats</span></b>
and <b><span style="color:#1F497D;mso-themecolor:text2">sys.dm_exec_request</span></b>
</span><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;mso-fareast-font-family:
Calibri;mso-fareast-theme-font:minor-latin">to find queries that collectively
consume a large number of resources and analyzing query performance by
producing a showplan.</span><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;"></span></p>

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin">Techniques for improving query performance
include prioritizing SQL Server over other operating system processes, Choosing
and Creating the Right indexes and use query optimization techniques to improve
individual query performance.</span><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;"></span></p>

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin">Indexing of Tables should be used very
judiciously by choosing the most critical queries and determining the index
columns based on their usage frequency. Also </span><span style="font-family:
&quot;Arial&quot;,&quot;sans-serif&quot;">judicious usage is recommended considering that there</span><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin"> are trade-offs involved with this
technique in the sense that your SELECT queries might run faster but your
INSERT, UPDATE and DELETE operations will slow down. Some useful ways of
determining creation of indexes are:</span><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;"></span></p>

<ul type="disc"><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list .5in"><span style="font-family:
     &quot;Arial&quot;,&quot;sans-serif&quot;">Create selective indexes on columns that are used in
     the WHERE clause of queries.</span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list .5in"><span style="font-family:
     &quot;Arial&quot;,&quot;sans-serif&quot;">Create multiple column indexes which are used in
     filter expressions and also make sure that the most selected column is
     left most in the indexed key.</span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1;tab-stops:list .5in"><span style="font-family:
     &quot;Arial&quot;,&quot;sans-serif&quot;">Indexing small tables will deteriorate performance.</span></li></ul>

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
line-height:115%"><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">Following
individual query optimization techniques help to improve the overall
performance of your queries as well as the application:</span></p>

<ul type="disc"><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l1 level1 lfo2;tab-stops:list .5in"><span style="font-family:
     &quot;Arial&quot;,&quot;sans-serif&quot;">Use 'WHERE' clause to limit the number of rows
     wherever possible.</span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l1 level1 lfo2;tab-stops:list .5in"><span style="font-family:
     &quot;Arial&quot;,&quot;sans-serif&quot;">Use 'UNION ALL' instead of 'UNION' where no
     duplicate rows are returned in the result sets of the queries which are
     being merged. However if there are duplicate rows and they need to be
     eliminated then use 'UNION'.</span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l1 level1 lfo2;tab-stops:list .5in"><span style="font-family:
     &quot;Arial&quot;,&quot;sans-serif&quot;">Avoid using 'DISTINCT' clause where duplicate rows
     are not returned as it leads to SQL Server using more resources thereby
     causing performance bottlenecks in the long run.</span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l1 level1 lfo2;tab-stops:list .5in"><span style="font-family:
     &quot;Arial&quot;,&quot;sans-serif&quot;">Avoid using Column or Row constraints in Tables as
     they degrade Insert and Update query performance.</span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l1 level1 lfo2;tab-stops:list .5in"><span style="font-family:
     &quot;Arial&quot;,&quot;sans-serif&quot;">Avoid using function or calculation on the column in
     the where clause. </span></li></ul>

<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
line-height:115%"><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">Other
techniques include using database-wide statistics options, partitioning tables,
views and indexes when large volume of data is involved and updating statistics
more frequently</span></p>For more detailed reference on SQL Performance Tuning Refer to<span style="font-size: 11pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"> </span><a href="http://www.mssqltips.com/"><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-US</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:EnableOpenTypeKerning/>
   <w:DontFlipMirrorIndents/>
   <w:OverrideTableStyleHps/>
   <w:UseFELayout/>
  </w:Compatibility>
  <w:DoNotOptimizeForBrowser/>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]--><span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;mso-fareast-font-family:&quot;Times New Roman&quot;;
mso-fareast-theme-font:minor-fareast;mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA"></span></a><a href="http://www.mssqltips.com/">SQL Tips</a><span style="font-size: 11pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;;"> or </span><span style="font-family:&quot;Arial&quot;,&quot;sans-serif&quot;"><a href="http://social.msdn.microsoft.com/Forums/en-US/category/sqlserver"><span style="color:blue">SQL Server MSDN forums</span></a></span><span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;
mso-fareast-font-family:&quot;Times New Roman&quot;;mso-fareast-theme-font:minor-fareast;
mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"><br /> </span>]]>
    </content>
</entry>

<entry>
    <title>OCS, Lync 2010 and Lync Online </title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2012/01/ocs_lync_2010_and_lync_online.html" />
    <id>tag:www.infosysblogs.com,2012:/engineering-software//11.5500</id>

    <published>2012-01-11T06:07:11Z</published>
    <updated>2012-01-11T07:14:07Z</updated>

    <summary>Microsoft and IBM are the major players in the software based unified communication front whereas CISCO is a major player when it comes to telecom/PBX based vendor. The latest happenings come from Microsoft with which it takes unified communication from LAN to the web with its release of Lync 2010 server.</summary>
    <author>
        <name>Seena Latha Sasidharan</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="lync2010" label="Lync 2010" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="microsoftocs" label="Microsoft OCS" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[<p style="TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt; BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial', 'sans-serif'; COLOR: #666666; FONT-SIZE: 9pt; mso-fareast-font-family: 'Times New Roman'">Unified Communication platform gives solution for an organization's communication and collaboration need. With the release of Lync Server 2010 Microsoft is taking collaboration to the next higher level;. ie. from LAN to over the cloud. Microsoft has added many capabilities with Lync when we compare it with the last release of Office Communication Server (OCS).<o:p></o:p></span></p>]]>
        <![CDATA[<p>Microsoft OCS has been there around for more than 8 years starting with OCS 2003, the last release being OCS 2007 R2. OCS 2007 R2 delivered a unified platform that worked along with the organization's existing messaging and telephony infrastructure.</p>
<p><span style="FONT-FAMILY: 'Arial', 'sans-serif'; FONT-SIZE: 9pt; mso-fareast-font-family: 'Times New Roman'"><strong><font color="#365f91">The main features of OCS 2007 R2 were:<o:p></o:p></font></strong></span></p>
<ol>
<li>Call Delegation, Team Call, Group Chat</li>
<li>Desktop Sharing, Extending Voice and Conferencing</li>
<li>Enhanced Media, Simplified Management</li></ol>
<p><br />This along with unified communication basic functionalities including instant messaging, presence notifications, Audio/ Video messaging and integration with office suite of products made OCS the most favorable Unified communication platform. Also OCS 2007 SDK gave us immense capability to develop applications having communicator capabilities.</p>
<p>Lync 2010 is the next generation unified communication platform from Microsoft. Lync 2010 brings in a new experience with the below additions</p>
<ol>
<li>The Lync client application has an easy-to-use interface that is consistent across PC, browser and mobile device.</li>
<li>Lync 2010 extensibility features that gives you the ability to embed communicator UI elements in your application and bring the communicator capabilities in the application.</li>
<li>There is the capability to have role based access control in Lync, with Lync defining 11 predefined roles for most of the administrative tasks.</li>
<li>The unified Microsoft Lync 2010 client has a simplified interface to provide access to enterprise needs for communication and collaboration.</li></ol>
<h1 style="MARGIN: 24pt 0in 0pt"><span style="FONT-FAMILY: 'Arial', 'sans-serif'; FONT-SIZE: 9pt; mso-fareast-font-family: 'Times New Roman'"><strong><font color="#365f91">Lync Online vs Lync On-Premises<o:p></o:p></font></strong></span></h1>
<p>Microsoft makes unified communication easier and more reliable with Lync Online, Lync On-premises and the federated communication feature between the two. Lync online is the communication service made available in the cloud. This transforms interactions to the online mode while bringing down the infrastructure cost. Lync Online opens up the possibility to connect thorough IM to external organizations without requiring VPN.</p>
<p>Lync On-premise also brings in the same set of features with it being deployed on-premise that is within the organization. What this also means is the infrastructure maintenance responsibility also lies with the organization.&nbsp; There is Lync Federation with Lync Online and Lync Premise available for federated communication possibility.</p>
<p>The choice between Lync On-premise and Lync online would lie in the organization need for online collaboration, security policies and their take on cost towards infrastructure.</p>
<h1 style="MARGIN: 24pt 0in 0pt"><span style="FONT-FAMILY: 'Arial', 'sans-serif'; FONT-SIZE: 9pt; mso-fareast-font-family: 'Times New Roman'"><strong><font color="#365f91">Lync 2010 SDK</font></strong></span></h1>
<p>Lync 2010 SDK can be used by developers to build communicator capability in their application. The SDK provides communicator UI elements that can be embedded in the applications. To hide the Lync client UI and develop a custom communicator client, Lync client installation has to be done in UI Suppression mode.</p>
<p>More on Lync SDK is available is available <a href="http://msdn.microsoft.com/en-us/library/gg421054.aspx">here</a>.</p>
<h1 style="MARGIN: 24pt 0in 0pt"><span style="FONT-FAMILY: 'Arial', 'sans-serif'; FONT-SIZE: 9pt; mso-fareast-font-family: 'Times New Roman'"><font color="#365f91"><strong>New Features in Lync 2010 Server</strong> 
<h2 style="MARGIN: 10pt 0in 0pt"><span style="FONT-FAMILY: 'Arial', 'sans-serif'; FONT-SIZE: 9pt"><strong><font color="#4f81bd">Unified Experience<o:p></o:p></font></strong></span></h2></font></span></h1>
<ol>
<li>Lync 2010 client gives a more enhanced experience in accessing presence notifications, instant messaging and audio, video and web conferencing features.</li>
<li>Mobile workforce can now have access to all these capabilities via PCs, browsers and mobile phones.</li>
<li>Tight integration with Office applications. Can access all capabilities of unified communication from any of the Microsoft Office applications.</li></ol>
<h2 style="MARGIN: 10pt 0in 0pt"><span style="FONT-FAMILY: 'Arial', 'sans-serif'; FONT-SIZE: 9pt"><strong><font color="#4f81bd">Conferencing</font></strong></span></h2>
<ol>
<li>Improvements to Desktop sharing, application sharing, PowerPoint upload and white boarding makes collaboration much easier..</li>
<li>Scheduling, joining meetings and placing attendees in virtual lobby makes conferring more secure and easier.</li>
<li>There are enhanced calling features for users and also management features for administrators.</li></ol>
<h2 style="MARGIN: 10pt 0in 0pt"><span style="FONT-FAMILY: 'Arial', 'sans-serif'; FONT-SIZE: 9pt"><strong><font color="#4f81bd">Deployment and Management Tools</font></strong></span></h2>
<ol>
<li>The administration management is consistent with exchange server and active directory.</li>
<li>The role-based access control (RBAC) has the capability to have both predefined roles and customer-defined roles. This gives improved security and increased administrative productivity.</li>
<li>Server virtualization of most of the Lync server roles is possible. All IM capabilities including remote access with federation is possible in a virtualized deployment.</li>
<li>Network, hardware and software can be monitored in real-time by administrators to analyze any degradation in the performance.</li></ol>
<p>The following were the benefits pointed out by <a href="http://go.microsoft.com/?linkid=9751775">Forrester's survey on Lync 2010 </a>deployment:</p>
<ol>
<li>PBX telephone systems could be replaced with Lync Server 2010 software. </li>
<li>Significant cost reductions on Web- and teleconferencing charges. </li>
<li>Customer experience with enterprise application would get better by having embedded communicator UI elements using the open and documented API's provided by Lync 2010. </li>
<li>Using federation unified communication could be extended beyond the enterprise or the organization.</li>
<li>Mobile workforce would benefit much from Lync's on-premise/ online federation service.</li></ol>
<p>In summary the next generation unified communication platform Lync is going to change the way business and organizations communicate and collaborate.</p>
<p>Read more on Lync and OCS <a href="http://lync.microsoft.com/en-in/Pages/default.aspx">here </a>and <a href="http://blog.whatdouc.net/2010/10/13/lync-vs-ocs-2007/#">here</a>.</p>]]>
    </content>
</entry>

<entry>
    <title>JEE: Server Performance and Configuration</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2011/12/jee_server_performance_and_con.html" />
    <id>tag:www.infosysblogs.com,2011:/engineering-software//11.5457</id>

    <published>2011-12-30T06:56:46Z</published>
    <updated>2012-01-02T05:59:10Z</updated>

    <summary>In this Blog series we will see the various server configuration settings related to performance.</summary>
    <author>
        <name>guest</name>
        
    </author>
    
    <category term="httpserver" label="http server" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="performance" label="Performance" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="serverconfigurations" label="server configurations" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="was" label="WAS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="webseal" label="webseal" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[<p style="TEXT-ALIGN: justify" class="MsoNormal"></p>
<p class="MsoNormal"></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"></p>
<p style="MARGIN: 0in 0in 0pt; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: rgb(0,0,0)" class="MsoNormal"><i><font size="3"><font style="FONT-SIZE: 0.8em">Guest Post by<o:p></o:p></font></font></i></p>
<p style="TEXT-ALIGN: left; MARGIN: 0in 0in 10pt; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: rgb(0,0,0)" class="MsoNormal"><font size="3"><font style="FONT-SIZE: 0.8em"><b>Anupindi Ravi Shankar</b>, Technology Architect, Manufacturing, Infosys&nbsp;Limited</font></font></p>
<p style="TEXT-ALIGN: left; MARGIN: 0in 0in 10pt" class="MsoNormal">An often heard complaint from development managers is<span style="TEXT-ALIGN: justify; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: rgb(0,0,0)" class="Apple-style-span">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span></p>
<p></p>
<p style="TEXT-ALIGN: left; MARGIN: 0in 0in 10pt" class="MsoNormal"></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"><i>"The response time of our web application is very high to pass the UAT.What corrective steps can we take to improve the performance of our application?"</i></p><p style="TEXT-ALIGN: justify" class="MsoNormal">Such statements are a clear indication of the fact that either the performance aspect was not considered or even if considered during requirements, architecture or design stages, was not executed fully. In most of the cases, performance aspect is being side-tracked for functional features and is considered only in the eleventh hour when the performance improvements prove very expensive and often patch works or quick workarounds are done to make the application perform better</p>
<p></p>
<p></p>
<p></p>]]>
        <![CDATA[<p style="TEXT-ALIGN: justify" class="MsoNormal">We should not attribute performance issues totally on the development. I would say that the development considerations amount to just 30-40% in the entire performance life cycle of the application.</p>
<p style="TEXT-ALIGN: justify" class="MsoNormal">The non functional considerations like user base, data volume, availability etc along with the network topology layout, appropriate capacity planning exercise, accurate server configurations, development considerations, load and performance testing together form the areas which need to be looked into, from a performance perspective. Whatever encompasses our network boundary should be considered.</p>
<p style="TEXT-ALIGN: justify" class="MsoNormal">Having worked on Performance Engineering exercise for quite some time, I would like to discuss on the performance aspects which can/should be considered at the server configuration level. The below diagram shows a typical deployment view of a web application designed for High Availability, failover support, security and performance.</p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"><img style="TEXT-ALIGN: center; MARGIN: 0px auto 20px; DISPLAY: block" class="mt-image-center" alt="webeal.jpg" src="http://www.infosysblogs.com/engineering-software/images/webeal.jpg" width="682" height="377" /></p>
<div>
<p style="TEXT-ALIGN: center" class="MsoNormal"><b>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Fig1: Illustrative Deployment View of the Web Application<o:p></o:p></b></p>
<p style="TEXT-ALIGN: center" class="MsoNormal"></p>
<p style="TEXT-ALIGN: justify; tab-stops: 148.5pt" class="MsoNormal">This blog and the following ones will talk about configurations for each of the IBM servers (left to right) as shown in the above deployment diagram. There could be same/similar configuration settings for non-IBM servers also.</p>
<p style="TEXT-ALIGN: justify; tab-stops: 148.5pt" class="MsoNormal">Let's start with the configuration settings for WebSEAL server (6.x) which can be considered for performance improvement. When we applied these settings in one of our projects we found a significant improvement in the response time of the page. So before we start with the configuration settings, let's quickly cover on what a WebSEAL server is. Going by the Internet definition of WebSEAL it <b><i>is a reverse proxy server which is used to serve the requests by delivering content from its own web server or from the junctioned backend server</i></b>. Apart from this, it is also used for SSO, Authentication and Authorization empowered by Tivoli Access Manager (TAM).</p>
<p style="TEXT-ALIGN: justify; tab-stops: 148.5pt" class="MsoNormal"><span style="LINE-HEIGHT: 115%; FONT-SIZE: 11pt"><b><font style="COLOR: #4f81bd; FONT-SIZE: 1em" class="Apple-style-span">WebSEAL Configuration Settings for Performance</font></b></span></p>
<p style="TEXT-ALIGN: justify; tab-stops: 148.5pt" class="MsoNormal"></p>
<p class="MsoNormal">Following are some of the configuration settings which can be considered.</p>
<p class="MsoNormal"></p>
<p class="MsoNormal"></p>
<ol>
<li>HTTP Logging</li>
<li>Static Content Caching</li>
<li>HTTP Data Compression</li>
<li>Worker Thread Settings</li></ol>
<div>
<p class="MsoNormal"><v:oval style="Z-INDEX: 251662336; POSITION: absolute; MARGIN-TOP: 7.1pt; WIDTH: 18pt; HEIGHT: 15.75pt; MARGIN-LEFT: -50.25pt" id="_x0000_s1026" fillcolor="black [3213]"></v:oval><span style="Z-INDEX: 251662336; POSITION: absolute; MARGIN-TOP: 8px; WIDTH: 26px; HEIGHT: 23px; MARGIN-LEFT: -68px; mso-ignore: vglayout"><img src="file:///C:/DOCUME~1/RAVISH~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif" width="26" height="23" v:shapes="_x0000_s1026" /></span>The below section describes each of these settings in detail.</p><span style="LINE-HEIGHT: 115%; COLOR: rgb(227,108,10); FONT-SIZE: 11pt"><b><font style="FONT-SIZE: 1em" class="Apple-style-span">HTTP Logging</font></b></span></div>
<div><span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri', 'sans-serif'; COLOR: #e36c0a; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: accent6; mso-themeshade: 191; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><b><br /></b></span></div>
<div>
<table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-border-alt: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" class="LightList-Accent11" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="BORDER-BOTTOM: medium none; BORDER-LEFT: #4f81bd 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 119.7pt; PADDING-RIGHT: 5.4pt; BACKGROUND: #4f81bd; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-border-left-themecolor: accent1; mso-background-themecolor: accent1" valign="top" width="160">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Property Name<o:p></o:p></span></b></p></td>
<td style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0in; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(79,129,189); PADDING-LEFT: 5.4pt; WIDTH: 119.7pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-STYLE: none; BORDER-TOP: 1pt solid; PADDING-TOP: 0in; background-origin: initial; background-clip: initial" valign="top" width="160">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Default Value<o:p></o:p></span></b></p></td>
<td style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0in; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(79,129,189); PADDING-LEFT: 5.4pt; WIDTH: 119.7pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-STYLE: none; BORDER-TOP: 1pt solid; PADDING-TOP: 0in; background-origin: initial; background-clip: initial" valign="top" width="160">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Value for consideration<o:p></o:p></span></b></p></td>
<td style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 119.7pt; PADDING-RIGHT: 5.4pt; BACKGROUND: #4f81bd; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: #4f81bd 1pt solid; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-background-themecolor: accent1; mso-border-right-themecolor: accent1" valign="top" width="160">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Remarks<o:p></o:p></span></b></p></td></tr>
<tr>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: #4f81bd 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 119.7pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-themecolor: accent1" valign="top" width="160">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b>HTTP Logging<o:p></o:p></b></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">WebSEAL maintains three conventional HTTP log files that record activity rather than messages<o:p></o:p></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"></p>
<ul>
<li>request.log</li>
<li>agent.log</li>
<li>referer.log</li></ul><o:p></o:p>
<p></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><o:p></o:p></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 119.7pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" valign="top" width="160">
<p style="TEXT-ALIGN: left; MARGIN-BOTTOM: 0pt" class="MsoNormal"><b>Enabled</b><o:p></o:p></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 119.7pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" valign="top" width="160">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b>Disable</b><o:p></o:p></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">[logging]<o:p></o:p></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"></p>
<ul>
<li>requests = no</li>
<li>referers = no</li>
<li>agents = no</li></ul><o:p></o:p>
<p></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><o:p></o:p></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><o:p></o:p></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 119.7pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: #4f81bd 1pt solid; PADDING-TOP: 0in; mso-border-themecolor: accent1" valign="top" width="160">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">Logging can be a performance overhead and can be disabled<o:p></o:p></p></td></tr></tbody></table></div>
<div>
<p style="TEXT-ALIGN: justify" class="MsoNormal">You define HTTP logging in the&nbsp;[<b>logging</b>]&nbsp;stanza of the&nbsp;webseald.conf&nbsp;configuration file, which can be located at</p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"></p>
<table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-border-alt: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" class="LightList-Accent11" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr style="HEIGHT: 15.2pt; mso-yfti-irow: -1; mso-yfti-firstrow: yes">
<td style="BORDER-BOTTOM: medium none; BORDER-LEFT: #4f81bd 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.2in; PADDING-RIGHT: 5.4pt; BACKGROUND: #4f81bd; HEIGHT: 15.2pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-border-left-themecolor: accent1; mso-background-themecolor: accent1" valign="top" width="307">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="FONT-FAMILY: 'Arial', 'sans-serif'; COLOR: white; FONT-SIZE: 10pt">Environment</span><span style="COLOR: white; mso-themecolor: background1; mso-bidi-font-weight: bold"><o:p></o:p></span></b></p></td>
<td style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BACKGROUND: #4f81bd; HEIGHT: 15.2pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: #4f81bd 1pt solid; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-background-themecolor: accent1; mso-border-right-themecolor: accent1" valign="top" width="330">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Path<o:p></o:p></span></b></p></td></tr>
<tr>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: #4f81bd 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.2in; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-themecolor: accent1" valign="top" width="307">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">Windows<o:p></o:p></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: #4f81bd 1pt solid; PADDING-TOP: 0in; mso-border-themecolor: accent1" valign="top" width="330">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><i><b>pd_install_dir\etc\webseald.conf</b><o:p></o:p></i></p></td></tr>
<tr>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: #4f81bd 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 3.2in; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-left-themecolor: accent1; mso-border-bottom-themecolor: accent1" valign="top" width="307">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">UNIX<o:p></o:p></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 247.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; BORDER-RIGHT: #4f81bd 1pt solid; PADDING-TOP: 0in; mso-border-right-themecolor: accent1; mso-border-bottom-themecolor: accent1" valign="top" width="330">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><i><b>/opt/pdweb/etc/webseald.conf</b><o:p></o:p></i></p></td></tr></tbody></table>
<p style="TEXT-ALIGN: justify" class="MsoNormal">I am not giving details of log files and the information they contain. To get a detailed understanding of these log files please refer <a href="http://publib.boulder.ibm.com/tividd/td/ITAME/GC23-4682-00/en_US/HTML/ws-agmst25.htm#HDRI1043196">WebSEAL admin guide</a></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"><img style="MARGIN: 0px 20px 20px 0px; FLOAT: left" class="mt-image-left" alt="disclaimer1.jpg" src="http://www.infosysblogs.com/engineering-software/images/disclaimer1.jpg" width="642" height="108" /></p></div><span style="LINE-HEIGHT: 90%; COLOR: rgb(227,108,10); FONT-SIZE: 11pt"><b><font style="FONT-SIZE: 1em" class="Apple-style-span">Static Content Caching</font></b></span> 
<div></div></div>
<div><span style="LINE-HEIGHT: 115%; COLOR: rgb(227,108,10); FONT-SIZE: 11pt"><b><font style="FONT-SIZE: 1.25em" class="Apple-style-span"><br /></font></b></span></div>
<div>
<table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-border-alt: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" class="LightList-Accent11" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="BORDER-BOTTOM: medium none; BORDER-LEFT: #4f81bd 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BACKGROUND: #4f81bd; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-border-left-themecolor: accent1; mso-background-themecolor: accent1" valign="top" width="175">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Property Name<o:p></o:p></span></b></p></td>
<td style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0in; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(79,129,189); PADDING-LEFT: 5.4pt; WIDTH: 85.5pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-STYLE: none; BORDER-TOP: 1pt solid; PADDING-TOP: 0in; background-origin: initial; background-clip: initial" valign="top" width="114">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Default Value<o:p></o:p></span></b></p></td>
<td style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0in; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(79,129,189); PADDING-LEFT: 5.4pt; WIDTH: 142.2pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-STYLE: none; BORDER-TOP: 1pt solid; PADDING-TOP: 0in; background-origin: initial; background-clip: initial" valign="top" width="190">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Value for consideration<o:p></o:p></span></b></p></td>
<td style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 119.7pt; PADDING-RIGHT: 5.4pt; BACKGROUND: #4f81bd; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: #4f81bd 1pt solid; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-background-themecolor: accent1; mso-border-right-themecolor: accent1" valign="top" width="160">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Remarks<o:p></o:p></span></b></p></td></tr>
<tr>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: #4f81bd 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-themecolor: accent1" valign="top" width="175">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b>Static content Caching<o:p></o:p></b></p>
<p style="TEXT-ALIGN: justify; TEXT-INDENT: -9pt; MARGIN: 0in 0in 0pt 4.5pt" class="MsoListParagraphCxSpFirst"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;</span></span>Allows document to be served locally rather than junctioned servers<b>.<o:p></o:p></b></p>
<p style="TEXT-ALIGN: justify; TEXT-INDENT: -9pt; MARGIN: 0in 0in 0pt 4.5pt" class="MsoListParagraphCxSpLast"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold">·&nbsp;<span style="FONT: 7pt 'Times New Roman'">&nbsp;</span></span>Static text documents (html, CSS, JS) and images files can be served from server memory, thereby providing faster response to follow-up requests for documents.<b><o:p></o:p></b></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 85.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" valign="top" width="114">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">No Cache<o:p></o:p></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 142.2pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" valign="top" width="190">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">Cache the static content.<o:p></o:p></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">Specify MIME type, Cache-type and Cache size</p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><o:p></o:p></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><i>mime-type&gt; =&lt;cache-type&gt;:&lt;cache-size&gt;</i></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><o:p></o:p></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 119.7pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: #4f81bd 1pt solid; PADDING-TOP: 0in; mso-border-themecolor: accent1" valign="top" width="160">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">Improved response time for the web page.<o:p></o:p></p></td></tr></tbody></table>
<p style="TEXT-ALIGN: justify" class="MsoNormal">You define Web document caching in the&nbsp;<b>[content-cache]</b>&nbsp;stanza of the&nbsp;webseald.conf&nbsp;configuration file.</p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"></p>
<p style="BACKGROUND: white"></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal">Example:<br /></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"></p>
<p style="BACKGROUND: white"><b><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi">[content-cache]</span></b></p>
<p style="BACKGROUND: white"></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal">Text/html = memory: 2500</p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"><img style="MARGIN: 0px 20px 20px 0px; FLOAT: left" class="mt-image-left" alt="mime1.jpg" src="http://www.infosysblogs.com/engineering-software/images/mime1.jpg" width="642" height="25" /></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"><br /></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal">Image/* = memory: 3000</p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"><img style="MARGIN: 0px 20px 20px 0px; FLOAT: left" class="mt-image-left" alt="mimetype2.jpg" src="http://www.infosysblogs.com/engineering-software/images/mimetype2.jpg" width="652" height="127" /></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"></p><span style="LINE-HEIGHT: 90%; COLOR: rgb(227,108,10); FONT-SIZE: 11pt"><b><font style="FONT-SIZE: 1em" class="Apple-style-span">HTTP Data Compression</font></b></span> 
<p></p>
<p style="BACKGROUND: white"></p></div>
<div>
<table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-border-alt: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" class="LightList-Accent11" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="BORDER-BOTTOM: medium none; BORDER-LEFT: #4f81bd 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BACKGROUND: #4f81bd; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-border-left-themecolor: accent1; mso-background-themecolor: accent1" valign="top" width="175">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Property Name<o:p></o:p></span></b></p></td>
<td style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0in; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(79,129,189); PADDING-LEFT: 5.4pt; WIDTH: 76.5pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-STYLE: none; BORDER-TOP: 1pt solid; PADDING-TOP: 0in; background-origin: initial; background-clip: initial" valign="top" width="102">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Default Value<o:p></o:p></span></b></p></td>
<td style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0in; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(79,129,189); PADDING-LEFT: 5.4pt; WIDTH: 184.5pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-STYLE: none; BORDER-TOP: 1pt solid; PADDING-TOP: 0in; background-origin: initial; background-clip: initial" valign="top" width="246">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Value for consideration<o:p></o:p></span></b></p></td>
<td style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 1.2in; PADDING-RIGHT: 5.4pt; BACKGROUND: #4f81bd; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: #4f81bd 1pt solid; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-background-themecolor: accent1; mso-border-right-themecolor: accent1" valign="top" width="115">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Remarks<o:p></o:p></span></b></p></td></tr>
<tr>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: #4f81bd 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-themecolor: accent1" valign="top" width="175">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b>HTTP Data Compression<o:p></o:p></b></p>
<p style="TEXT-ALIGN: justify; TEXT-INDENT: -9pt; MARGIN: 0in 0in 0pt 4.5pt" class="MsoListParagraphCxSpFirst"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;</span></span>Allows compressed data to be transferred over HTTP between the WebSEAL server and the client.<o:p></o:p></p>
<p style="TEXT-ALIGN: justify; TEXT-INDENT: -9pt; MARGIN: 0in 0in 0pt 4.5pt" class="MsoListParagraphCxSpLast"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;</span></span>Data can be compressed based on MIME types, browser type and Protected Object Policies<o:p></o:p></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 76.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" valign="top" width="102">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">Not Specified<o:p></o:p></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 184.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" valign="top" width="246">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b>[compress-mime-types]<o:p></o:p></b></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">&nbsp;<span style="FONT-SIZE: 10pt; mso-bidi-font-size: 11.0pt">mime_type = minimum_doc_size&nbsp;&nbsp; [:compression_level]</span> &nbsp;<o:p></o:p></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">&nbsp;minimum_doc_size values : -1,0,&gt;0 compression_level&nbsp; values : 1-9<o:p></o:p></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 1.2in; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: #4f81bd 1pt solid; PADDING-TOP: 0in; mso-border-themecolor: accent1" valign="top" width="115">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">Improved response time for the web page.<o:p></o:p></p></td></tr></tbody></table>
<p style="TEXT-ALIGN: justify" class="MsoNormal">Example:</p></div>
<div>
<p style="BACKGROUND: white"><b></b></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"><b>[compress-mime-types]</b></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal">Image/* = 0<span style="WHITE-SPACE: pre" class="Apple-tab-span">		</span>: <span style="WHITE-SPACE: pre" class="Apple-tab-span">	</span>Compress all Images</p>
<p style="TEXT-ALIGN: justify" class="MsoNormal">Text/css = -1<span style="WHITE-SPACE: pre" class="Apple-tab-span">		</span>:<span style="WHITE-SPACE: pre" class="Apple-tab-span">	</span>Disable compression of CSS files</p>
<p style="TEXT-ALIGN: justify" class="MsoNormal">Text/html = 2000<span style="WHITE-SPACE: pre" class="Apple-tab-span">	</span>:<span style="WHITE-SPACE: pre" class="Apple-tab-span">	</span>Compress HTML files of size &gt; 2000 bytes</p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal">To get a detailed understanding of supported file compression techniques please refer WebSEAL <a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=%2Fcom.ibm.itame.doc_6.0%2Frev%2Fam60_webseal_admin37.htm">infocenter</a></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"><b style="LINE-HEIGHT: 13px; COLOR: rgb(227,108,10); FONT-SIZE: 15px"><font style="FONT-SIZE: 1em" class="Apple-style-span">Worker Thread Settings</font></b></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"></p>
<table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-border-alt: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" class="LightList-Accent11" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="BORDER-BOTTOM: medium none; BORDER-LEFT: #4f81bd 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BACKGROUND: #4f81bd; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-border-left-themecolor: accent1; mso-background-themecolor: accent1" valign="top" width="175">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Property Name<o:p></o:p></span></b></p></td>
<td style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0in; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(79,129,189); PADDING-LEFT: 5.4pt; WIDTH: 76.5pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-STYLE: none; BORDER-TOP: 1pt solid; PADDING-TOP: 0in; background-origin: initial; background-clip: initial" valign="top" width="102">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Default Value<o:p></o:p></span></b></p></td>
<td style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0in; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(79,129,189); PADDING-LEFT: 5.4pt; WIDTH: 184.5pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-STYLE: none; BORDER-TOP: 1pt solid; PADDING-TOP: 0in; background-origin: initial; background-clip: initial" valign="top" width="246">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Value for consideration<o:p></o:p></span></b></p></td>
<td style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 1.2in; PADDING-RIGHT: 5.4pt; BACKGROUND: #4f81bd; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: #4f81bd 1pt solid; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-background-themecolor: accent1; mso-border-right-themecolor: accent1" valign="top" width="115">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b><span style="COLOR: white; mso-themecolor: background1">Remarks<o:p></o:p></span></b></p></td></tr>
<tr>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: #4f81bd 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 131.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-themecolor: accent1" valign="top" width="175">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b>Worker Thread Settings<o:p></o:p></b></p>
<p style="TEXT-INDENT: -9pt; MARGIN: 0in 0in 0pt 4.5pt" class="MsoListParagraph"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span>Allows incoming requests to be handled by the WebSEAL<o:p></o:p></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 76.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" valign="top" width="102">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">50<o:p></o:p></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 184.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" valign="top" width="246">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal"><b>[server]<o:p></o:p></b></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">worker-threads = 50<o:p></o:p></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">Worker threads can be configured at global level as well as per-junction level.<o:p></o:p></p>
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">For Global level adjust these values.<o:p></o:p></p>
<p style="TEXT-INDENT: -0.25in; MARGIN-BOTTOM: 0pt" class="MsoListParagraphCxSpFirst"></p>
<ul>
<li><span style="FONT-FAMILY: Symbol"><span style="FONT: 7pt 'Times New Roman'">&nbsp;</span></span>worker-thread-hard-limit</li>
<li>worker-thread-soft-limit</li></ul><o:p></o:p>
<p></p>
<p style="TEXT-INDENT: -0.25in; MARGIN-BOTTOM: 0pt" class="MsoListParagraphCxSpMiddle"><o:p></o:p></p>
<p style="MARGIN: 0in 0in 0pt" class="MsoListParagraphCxSpMiddle">Per junction values can be set like this<o:p></o:p></p>
<p style="TEXT-INDENT: -0.25in; MARGIN-BOTTOM: 0pt" class="MsoListParagraphCxSpLast"></p>
<ul>
<li>Specify <i>-I</i> and <i>-L</i> options to <b>pdadmin server task create</b> command.</li></ul><o:p></o:p>
<p></p></td>
<td style="BORDER-BOTTOM: #4f81bd 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 5.4pt; WIDTH: 1.2in; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; BORDER-RIGHT: #4f81bd 1pt solid; PADDING-TOP: 0in; mso-border-themecolor: accent1" valign="top" width="115">
<p style="MARGIN-BOTTOM: 0pt" class="MsoNormal">Process memory usage limits must be properly adjusted<o:p></o:p></p></td></tr></tbody></table></div>
<div>
<p style="TEXT-ALIGN: justify" class="MsoNormal">To get a detailed understanding of worker thread settings please refer to WebSEAL <a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=%2Fcom.ibm.itame.doc_6.0%2Frev%2Fam60_webseal_admin37.htm">infocenter</a></p>
<p style="TEXT-ALIGN: justify" class="MsoNormal"></p>
<p class="MsoNormal">I hope these WebSEAL configurations will come in handy when you are working on performance engineering for your Web Application. Do share with me your experience after using them.</p>
<p style="TEXT-ALIGN: justify" class="MsoNormal">&nbsp;In the next one, I will talk about performance configuration settings for IBM HTTP server.</p>
<p></p></div>]]>
    </content>
</entry>

<entry>
    <title>Cloud Computing - Planning for the non-promise of High Availability</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2011/10/cloud_computing_-_planning_for.html" />
    <id>tag:www.infosysblogs.com,2011:/engineering-software//11.5186</id>

    <published>2011-10-07T09:14:52Z</published>
    <updated>2011-10-10T11:03:15Z</updated>

    <summary>More and more businesses today are experimenting with moving their applications into the cloud - a key motivation being, to be able to leverage highly available and redundant cloud infrastructure at reduced IT costs. However, sporadic failures over this year...</summary>
    <author>
        <name>Suraj Nair</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="businesscontinuity" label="Business Continuity" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cloudcomputing" label="Cloud Computing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="highavailability" label="High Availability" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="redundancy" label="Redundancy" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[<p>More and more businesses today are experimenting with <a href="http://www.cloudtweaks.com/2011/05/28-percent-of-u-s-organizations-using-cloud-computing-today/">moving their applications into the cloud</a> - a key motivation being, to be able to leverage highly available and redundant cloud infrastructure at reduced IT costs. However, sporadic failures over this year in cloud services provided by the cloud computing Big-3 have indicated that companies have to factor-in downtime in their application deployment strategy, irrespective of the advertised promises of high availability. A failure in Amazon's EC2 cloud service, early this year, had resulted in many internet sites being down throughout the day as per a report <a href="http://www.upi.com/Top_News/US/2011/04/22/Cloud-computing-failure-hits-Internet/UPI-84001303489785/">here</a>. Microsoft's Office 365 cloud service and Google's Gmail and Appservices too have had their <a href="http://www.smh.com.au/it-pro/cloud/cloud-promises-stressed-to-the-nines-20110930-1l0uj.html">share of downtimes </a>this year.</p>
<p>&nbsp;</p>]]>
        <![CDATA[<p>&nbsp;For architects of such systems, the promise of the 'cloud providing scalable and available infrastructure' should not distract from the need to provide importance in equal measure to both application and infrastructure architecture. Even when designing applications to be hosted on the cloud, it is important to understand infrastructure requirements thoroughly and design for the same. Though there are promises of redundancy and data replication in the cloud, the overall architecture must clearly outline how services must be redundantly available across zones (multiple physical locations offshore), how data should be replicated across zones.&nbsp; Cloud service providers do offer such services, but it is up to the design of the application to utilize those services. During the Amazon outage, some clients managed to shift their traffic to Amazon's West Coast data center when they found servers (hosted on the East Coast) failing because they had designed for such <a href="http://www.cloudtweaks.com/2011/05/did-human-error-cause-the-amazon-cloud-computing-outage/">failures</a>.&nbsp;In a project involving migration of an application from on-premise systems to Microsoft Azure, our customer had some very intelligent questions about the possibility of failure and how, the system we were designing required to auto-correct before users realized. The intelligence had to be built-in, despite the option of paying for redundancy. </p>
<p>The uncertainty&nbsp;witnessed in recent times&nbsp;regarding&nbsp;downtime on the cloud&nbsp;and&nbsp;the resulting revenue losses&nbsp;to&nbsp;businesses have resulted in&nbsp;them spending&nbsp;more towards building redundancy (by booking more compute, storage and network resources in the cloud). As a result, the cost of using the cloud increases, because business can no longer <a href="http://etherealmind.com/complex-systems-complex-failures-cloud-computing/">ignore </a>redundancy costs. (The challenge&nbsp;over time is that the investments have to last longer to cover for the costs incurred towards buidling in redundancy despite being on the cloud.) Companies craving 100% availability must bear premium costs for redundant computing and storage environments. (Cloud computing providers provide various levels of service - Amazon AWS gold plan, platinum plan etc.)&nbsp;With recent <a href="http://www.msnbc.msn.com/id/35674095/ns/technology_and_science-science/t/pacific-northwest-risk-mega-earthquake/">scientific evidence </a>of potential&nbsp;natural catastrophes like earthquakes etc. hitting wider regions, it is important to plan for deployment across multiple zones (across landmasses if required). Remember, there is of course cost and risks involved. (For example, bandwidth cost for communication among compute roles in the same data center is free, while communication across data centers is charged. Additionally, data in data centers across countries subjects you to being under the jurisdiction of that country).</p>
<p>&nbsp;On the other side, cloud providers should be open towards questions from customer architects&nbsp;as regards their infrastructure design and spread. Cloud providers should be open to compliance audits from their customers or from external third party audits including certifications (SAS 70 security reviews and ISO 27001) to increase confidence in the customer. Certifications as a result of audits help increase customer confidence, that nothing is drastically wrong and the chance of failure is minimal and recovery covered. </p>
<p>Cloud providers are indeed realizing the need for <a href="http://www.smh.com.au/it-pro/cloud/cloud-promises-stressed-to-the-nines-20110930-1l0uj.html#ixzz1a4UziDq5">greater service transparency</a>. In fact, Microsoft Azure has invested in <a href="http://www.microsoft.com/windowsazure/support/status/servicedashboard.aspx">service dashboards</a>, monitoring services and notification services, using which users can gain visibility into service availability. Using these services, customers can see the state of the infrastructure and services on which their systems run at realtime.</p>
<p>&nbsp;Companies (consuming cloud services) should realize that the services should not be considered to be a Holy Black Box, where everything will just work forever. They have to plan for strategies to counter infrastructure failures despite using the cloud. Customers should build in resilience and understand trade-offs. Cloud Providers should realize that customers are extremely concerned with regard to availability promises on paper and SLAs. It would be good to develop customer confidence by opening up to audits and certifications. Interestingly, the Asia Cloud Computing Association (ACCA) plans to release guidelines to rank cloud providers in availability and seven other categories, to allow uniformity in comparison.</p>
<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>Adoption of IPv6</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2011/09/adoption_of_ipv6.html" />
    <id>tag:www.infosysblogs.com,2011:/engineering-software//11.5145</id>

    <published>2011-09-29T10:55:39Z</published>
    <updated>2011-09-29T11:35:36Z</updated>

    <summary><![CDATA[In recent times, there seems to have been a renewed interest in IPv6 adoption - with the impending&nbsp;state of exhaustion of IPv4 closer than ever before.&nbsp;The&nbsp;internet explosition and the proliferation of internet enabled devices (ever-connected and online) have resulted in...]]></summary>
    <author>
        <name>Suraj Nair</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ipv4" label="IPv4" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ipv6" label="IPv6" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[In recent times, there seems to have been a renewed interest in IPv6 adoption - with the impending&nbsp;state of exhaustion of IPv4 closer than ever before.&nbsp;The&nbsp;internet explosition and the proliferation of internet enabled devices (ever-connected and online) have resulted in a much quicker-than-expected exhaustion of IPv4 addresses. Strangely, over the years, there have been various publicly advised debates around the accessibility and growth of the internet -but somewhere there, the urgency to think about a state where existing IP addresses would exhaust - <a href="http://www.law.com/jsp/cc/PubArticleCC.jsp?id=1202513166091&amp;The_Four_Horsemen_of_the_Apocalypse_Class_of_2011_IPv6">seemed lacking</a>. We are at that very point now where transitioning to IPv6 has seemingly become very important.&nbsp; Apparently, the last blocks of IPv4 internet addresses will <a href="http://www.zdnet.co.uk/blogs/security-bullet-in-10000166/iana-to-make-final-ipv4-allocations-10021595/">soon be assigned </a>to regional internet registries.<br />]]>
        <![CDATA[<p>Enterprises generally hold large pools of IP addresses which are pooled dynamically (using DHCP servers) based on demands of devices wanting to join the network. In some organizations, IPs is statically assigned when there are sufficient IPs reserved. Static IP&nbsp;reservation is anyway rare today in enterprises, but even for dynamic assignment, there do not seem to be sufficient number of IPv4 based&nbsp;addresses available to allocate from. IPv6 provides nearly an infinite supply of addresses besides improving routing efficiency and other benefits. Interestingly, the apparently infinite supply of IP addresses introduces the possibility of assigning a defined IP per device which in turn introduces the risk of identified surveillance (because the IP address then becomes an identity - when attached to mobile devices ( smartphones etc). There are however methods of <a href="http://www.law.com/jsp/cc/PubArticleCC.jsp?id=1202513166091&amp;The_Four_Horsemen_of_the_Apocalypse_Class_of_2011_IPv6">anonymizing addresses to disassociate collected data from specific IP addresses</a>)</p>
<p>The challenge today among enterprises and service providers is to determine a smooth IPv6 transition strategy that is least disruptive. The need is to maintain backward compatibility during the phase of transitioning to IPv6 enablement. There are substantial costs and risks involved in the transitioning (and hence are best postponed in areas like internal networks of enterprises which use private addressing and may not have issues related to address shortage).&nbsp;The state of complete&nbsp;IPv6 adoption is still a long way away today - and hence it is best to adopt in phases (islands of IPv6 adoption) to ensure operations are not affected during the transitioning.</p>
<p>Migration to IPv6 involves the network, operating systems and applications. Even when applications and services claim to be IPv6 compliant, there are feature and performance differences between IPv4 and IPv6 which need to be analyzed. For example, it is believed that adopting IPv6 will result in consumption of more <a href="http://www.computing.co.uk/ctg/ask-the-analyst-blog/2083913/ipv6-migration">network bandwidth </a>(because of increased packet size).</p>
<p>One of the many migration/transitioning mechanisms is to use the dual-stack strategy (there are other strategies like tunneling etc) where all devices in a communication path have support for dual IP stack&nbsp;available which enables both IPv4 and IPv6 protocols. (A number of operating systems already support this mechanism in the kernel.) This mechanism supports applications that may use IPv4 or IPv6 as their communication protocol in the underlying network.&nbsp; Applications expected to be transitioned to IPv6 should&nbsp;use protocol independent APIs in the code snippets involving TCP/IP communication. For instance, in C/C++, IPv4/v6 portability is assured by using <em>getaddrinfo()</em> instead of <em>gethostbyname() </em>etc. The task of incorporating portable IPv4/v6 support in native code could be along the same lines adopted over the years in cross-platform porting where portable APIs were used to the extent possible (with OS specific code separated using pre-compiler directive flags). Java and .NET libraries&nbsp;already have IPv6 support built in for many years -&nbsp;such that a&nbsp;single code base ensures IPv4 and IPv6 readiness. <br />&nbsp;<br />It is important to check if there is indeed a business case for a customer to move to IPv6 when the cost of transition exceeds the benefits. Even in a world slowly adoption IPv6, most highly desired content is still in the IPv4 world and hence there may be time yet. Interestingly, China had shown the urgency and built a strong IPv6 based infrastructure well in time for the Beijing Olympics in 2008 - and seemed to have benefitted economically as a result. London for the 2012 Olympics has shown no such interest with a London Olympics&nbsp;<a href="http://www.domainnews.com/en/beijing-olympics-to-trump-london-on-ipv6-adoption.html">spokesperson</a> recently announcing that - <em>"Such is the scale of technology required for Olympic Games, it tends to be tried and tested. We work closely with our technology partners to ensure that we have operational certainty across the project. As such we will be using IPv4 for London 2012."</em> This has indeed left the&nbsp; pro-IPv6 adoption group disappointed - and typically reflects the paranoia surrounding the current state of IPv6 adoption.</p>]]>
    </content>
</entry>

<entry>
    <title>Modernize to invest in Innovation</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2011/08/modernize_to_invest_in_innovat.html" />
    <id>tag:www.infosysblogs.com,2011:/engineering-software//11.4937</id>

    <published>2011-08-30T04:46:59Z</published>
    <updated>2011-08-30T04:55:20Z</updated>

    <summary>Interestingly, there are actually more lines of COBOL being handled in enterprise applications in the world than Java - even today. It surely is difficult to imagine, considering that the latest TIOBE Programming Index for August 2011, still indicates Java...</summary>
    <author>
        <name>Suraj Nair</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="innovation" label="Innovation" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="legacysoftware" label="Legacy Software" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="modernize" label="Modernize" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[Interestingly, there are actually more lines of COBOL being handled in enterprise applications in the world than Java - even today. It surely is difficult to imagine, considering that the latest <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">TIOBE Programming Index </a>for August 2011, still indicates Java to be safely ensconced right on top of the programming language list. (The TIOBE Programming Community index is an indicator of the popularity of programming languages based on certain parameters and is not about the best programming language or the language in which most lines of code have been written.). Regular maintenance/enhancement tweaks in billion lines of existing legacy COBOL code, actually turns out to be a lot of code being handled.]]>
        <![CDATA[<p>Despite what the TIOBE Index seems to indicate with regard to the ranking of COBOL among other programming languages, it does not mean that it is going to go out of favor for quite some time to come. Backend systems of large banks of the type of Bank of America, Citigroup etc. still rely primarily on their Mainframe infrastructure. In many countries, Mainframes are the backbone of systems that run railways, air traffic control systems, govermental systems etc. Infact, it is estimated that there are <a href="http://www.ft.com/cms/s/0/535ef1cc-bd61-11dd-bba1-0000779fd18c.html#axzz1WQHwarBs">two hundred times more Cobol transactions</a>, than Google searches in the world&nbsp; - no wonder that, because mainframes is still what is running businesses all over the world even today. What that also means is that there are indeed a lot of 'legacy' systems that are still crucial to businesses today.</p>
<p>Businesses in the current economic climate need to innovate to remain competive and hence there is the urgent need to free up maintenance time, to enable innovation and remain relevant in competition. It is the volume and complexity in these systems that make CTOs pessimistic about taking the chance to modernize such systems so that there is less energy spent on maintaining them. Applications are not actively modernized or retired and thus increasing maintenance expenditure, resulting in reduced innovation. <a href="http://www.zdnetasia.com/forrester-it-to-cut-back-on-mundane-maintenance-62201451.htm">Forrester </a>estimates that&nbsp;&nbsp;70% of the IT budget is typically locked in maintenance and support.&nbsp; Decades of investments on applications and infrastructure has resulted in reluctance towards adopting change to modernize, which in turn results in diminishing returns on those investments over the years. Infact, the joke is that people are retiring faster than applications are.</p>
<p>It is thus important for companies to think wholistic rather than adhoc to really maximize business value. Such companies need to take an inventory of applications, place them on an application portfolio map and then use dashboards to gain insights to allow deciding whether to retire, retain (consolidate, upgrade, rehost, convert) or replace(rewrite, purchase etc).</p>
<p>Interestingly, the existence of legacy and complex applications has spawned opportunities in developing application portfolio management applications and tools that analyze legacy systems. Even in a case where retiring or replacing is not an option, retaining existing applications also means the need to upgrade corresponding support tools - to new graphical user interfaces for developers, to initiatives to bring Cobol into the "cloud"etc, anything that could 'upgrade' the system to benefit without rewrite. COBOL may not seem to appeal to the current generation, but the fact is that there are even gaming companies (like <a href="http://www.itjungle.com/big/big050207-story01.html">this one</a> in Brazil) that have in the recent past built systems around Mainframes.</p>
<p>The amount of code that has been written over the last decade is considered to have tripled, over what had been written earlier - you can imagine the amount of 'legacy' we are due to leave behind for the next generation to maintain - unless there are effective processes and tools in place to analyze and retire what is not worth maintaining, or modernize tools around existing systems.<br /></p>]]>
    </content>
</entry>

<entry>
    <title>The need to build complex systems - smarter</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2011/08/the_need_to_build_complex_syst.html" />
    <id>tag:www.infosysblogs.com,2011:/engineering-software//11.4890</id>

    <published>2011-08-16T10:24:39Z</published>
    <updated>2011-08-16T10:50:52Z</updated>

    <summary>Kristof Kloeckner (General Manager, IBM Software, and Rational) spoke at the IBM Software Innovate Conference at the Infosys campus last week - on the need to drive product/service innovation and ALM practices to be able to manage today&apos;s complex systems....</summary>
    <author>
        <name>Suraj Nair</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="alm" label="ALM" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ibmrational" label="IBM Rational" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="smarterplanet" label="Smarter Planet" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[Kristof Kloeckner (General Manager, IBM Software, and Rational) spoke at the IBM Software Innovate Conference at the Infosys campus last week - on the need to drive product/service innovation and ALM practices to be able to manage today's complex systems. Thought leaders in business, government and society are capturing the <a href="http://en.wikipedia.org/wiki/Smarter_Planet">potential of smarter systems </a>to achieve economic growth, sustainable development and societal progress. IBM's strategy as part of its Smarter Planet initiative is to enable many of the technology and process management capabilities - to help develop complex software systems that collaborate intelligently to solve the planet's pressing problems (water management, green revolution etc) ]]>
        <![CDATA[<p>In today's world, innovation is increasingly being delivered through software. Robotic surgery has today resulted in a six fold reduction in mortality rate of bypass surgeries when compared to the days when an individual practioner in the operation theatre reigned supreme. The number lines of software code in today's automobiles compared easily with that in a fighter jet.&nbsp; It is not surprising today, that complications of a fighter jet are being brought into software written for consumer goods. Software is indeed invisible thread that runs through thousands of enabled, interconnected systems that communicate to achieve ends. Despite the growing influence of software in driving systems-of-systems in heterogeneous ecosystems, the disciple of software development and delivery today seem to be just adequate to the task. There is a need for a better approach towards software and system delivery which needed to evolve beyond the pure engineering measures of cost, quality and risk to a more econometric approach of being able to manage uncertainty by regular and accurate measurement of value.</p>
<p>An example of the complexity of software and an example of what constitutes a "system of systems" is&nbsp;General&nbsp;Motor's&nbsp;<a href="http://www.chevrolet.com/volt/">Chevrolet Volt</a>. General Motors used IBM's suite of Rational software products to develop some of the Chevrolet Volt's critical electronic controls for the vehicle's innovative battery system, electric drive unit, and cabin electronics. IBM's work to help streamline General Motors' design process resulted in the electronic backbone of the car from concept to finish, <a href="http://www.eetimes.com/electronics-news/4215735/IBM-tells-story-behind-Chevy-Volt-design">being completed in a record 29 months</a>.&nbsp; The Chevrolet Volt contains more than 10 million lines of code with over a 100 electronic controllers communicating with each other - a system of systems.&nbsp;Cars in today's market&nbsp;have&nbsp;indeed been software heavy, with electronic control units (with complex software embedded) communicating with each other regularly over serial bus networks like CAN, GMLAN etc. However, GM has stretched the use of software systems by using software for tasks such as thermal management of the lithium battery (to make it last longer?) etc.&nbsp;Additionally, there&nbsp;are <a href="http://www.cioinsight.com/c/a/Case-Studies/Does-Your-Car-Have-its-Own-IP-Address-527839/">applications in the in-car devices </a>for example, that can download a party invitation from Facebook etc to the vehicle's navigation system, and have the car provide the directions to the party&nbsp;...automatically.&nbsp; In fact, each car has an associated IP address - making it a potential data center on wheels!! Software is indeed the heart and soul of this car. (Apparently, though IBM Rational Software tools were used heavily as part of the development process, there is no IBM software in the car.)</p>
<p>Applications and systems today are inevitably multi-platform and complex. What add to the inherent complexity are the pressures of increased regulatory compliance requirements in products, cost reduction, changing requirements, globally distributed software and product supply chains etc.&nbsp; There is a need for innovative tools to support real time planning (improving time to delivery), life-cycle traceability maintenance (improve quality), collaborative development support etc</p>
<p>Predictability of software delivery had to be improved using honest measurements.&nbsp; Recollecting what Walker Royce, (Chief Software Economist at IBM) had mentioned in his talk at the same conference last year, software is all about dealing with uncertainty - which seemed to make it more an economics-based disciple than an engineering one. The biggest challenge is to reduce uncertainty -and regular and honest measurement helps reduce that uncertainty. The point is not just to focus on delivering to the plan, but rather to remove the uncertainties early enough by modeling, developing POCs, questioning etc. Rather than measuring progress by a sequence of documents and artifacts (activity based, document baselines), it is important to demand a sequence of demonstrable results which are result based (code, test baselines). Artifacts such as static design models, API documentation etc. fuel dishonest early optimism, when the need is to demonstrate capability and measure quality by developing dynamic models (modeling, simulation etc). Only relying on static artifacts often result in false precision (unmeasured) which affects predictability down the line. It is important to avoid&nbsp;postponing analysis of&nbsp;architecturally significant risks to reduce variance in the estimated cost to completion. The IBM Rational Suite used in the development of the Volt, enabled engineers to quickly make changes in the system and predict the results on-the-fly as development progressed, thus enabling course corrections early enough in case of issues.</p>
<p>A lot of what is discussed is obviously known. However, considering that software systems today have fiscal and societal impacts and that the outcome of development of complex heterogeneous eco-systems are becoming increasingly difficult to trace, understand and predict, Application Lifecycle Management methodologies and tools have to adapt and innovate accordingly. IBM's Rational Team Concert (based on the Jazz platform), Microsoft's VSTS (Team Foundation Server) are some of the popular tools in this space.&nbsp; (As part of its interest in seeing tool adoption being incorporated as a part of engineering curricula, IBM has opened up a limited beta of the Team Concert hosted on the cloud -called JazzHub- for the open development of academic research and classroom projects in universities.)<br /></p>]]>
    </content>
</entry>

<entry>
    <title>Will C++0x stand the test of Unicode?</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2011/08/will_c0x_stand_the_test_of_uni.html" />
    <id>tag:www.infosysblogs.com,2011:/engineering-software//11.4871</id>

    <published>2011-08-05T15:41:10Z</published>
    <updated>2011-08-05T16:03:00Z</updated>

    <summary>C++0x is going to be the next ISO C++ standard which will replace the existing C++ standard C++03. It was earlier scheduled to be released in 2009, but most likely will get released in 2011. We will probably see it...</summary>
    <author>
        <name>Aviraj Singh</name>
        
    </author>
    
        <category term="Internationalization" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="c" label="C++" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="c0x" label="C++0x" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="internationalization" label="internationalization" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="unicode" label="unicode" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[C++0x is going to be the next ISO C++ standard which will replace the existing C++ standard C++03. It was earlier scheduled to be released in 2009, but most likely will get released in 2011. We will probably see it rechristened to C++11 once released. This new standard will have several additions and improvements to the core language and will extend the C++ standard library. The last publicly available working draft of the new specification was submitted on 28th Feb, 2011 and is available for public access <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf">here</a>. For the C++ developers all over the world working on Internationalization of software; the most awaited improvement to the C++ standard is going to be native Unicode support. <em>Will C++0x meet all the Unicode requirements or will developers still have to depend on third party libraries like ICU,&nbsp;Rosette, Boost etc for their i18n development?</em>]]>
        <![CDATA[<p>The basic requirement of any programming language to support <a href="http://en.wikipedia.org/wiki/Unicode">Unicode</a> is to provide support for string processing in the <a href="http://en.wikipedia.org/wiki/UTF-8">UTF-8</a>, <a href="http://en.wikipedia.org/wiki/UTF-16/UCS-2">UTF-16/UCS-2</a> and <a href="http://en.wikipedia.org/wiki/UTF-32/UCS-4">UTF-32/UCS-4</a> encodings and be able to convert values between these encodings. UTF-8 is a multi-byte character encoding which uses one or more bytes to encode each character. UTF-32/UCS-2 is wide character encoding which uses fixed size 32-bits/16-bits respectively to represent each character. UTF-16 which is a 16-bit encoding is not a fixed width character encoding because of its support for surrogate pairs which are outside the <a href="http://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane">Basic Multilingual Plane</a> (BMP). UCS-2 is a 16-bit character encoding that matches the entries in the BMP of UTF-16. UCS-4 is a 32-bit encoding and is similar to UTF-32.</p>
<p><em>Traditionally C++ has been a programming language that did not have native support for Unicode</em>. Since the standardization of C++98, Programmers only had two native character types at their disposal for string processing - char and wchar_t. The char data type is 8-bit in length while the wchar_t which is used for wide character representation is 16-bit on Windows and 32-bit on UNIX systems. The C++ language specification does not define the size of wchar_t. Since <em>wchar_t has an implementation defined size</em>, it makes it unsuitable for handling Unicode strings portably and reliably. The wchar_t data type has wide character support but it knows nothing about the semantic value of the data stored in it. Moreover UTF-16 and UTF-32 are not byte oriented, so developers have to be very careful while passing UTF-16 or UTF-32 string data between Windows and UNIX systems. Developers are faced with such challenges while working on client server applications in C++, where the client is on windows and the server is on a UNIX platform or vice-versa.</p>
<p>The char data type is typically used for single byte character encodings, such as ASCII or the ISO Latin family of encodings. It can also be used with multi-byte encodings such as UTF-8. While wchar_t is widely used for providing UTF-16 Unicode support in C++ programs, it is in fact not a complete solution. UTF-16 cannot be supported by the 16-bit wchar_t data type on Windows because it cannot handle <a href="http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters#Surrogates">surrogate pairs</a>. In order to provide the perfect UTF-16 solution, developers have to use third party libraries like <a href="http://icu-project.org/">ICU</a>, <a href="http://www.basistech.com/unicode/">Rosette</a>, <a href="http://www.boost.org/">Boost</a> etc. This not only introduces dependencies on external libraries (maybe even proprietary libraries), but even increases the size of the program. Moreover the encoding used by the system is locale dependent and most string conversion library functions are locale dependent. For years C++ developers have lived with such inconsistencies and native Unicode support for the language was very much needed.</p>
<p><em>So what does C++0x offer in terms of Unicode support? Does it provide a solution to all the Unicode issues existing in C++03 or do developers still have to rely on third party libraries for Unicode support</em>? C++0x will have support for 3 encodings - UTF-8, UTF-16 (Partially) and UTF-32. While the char data type will support UTF-8, C++0x adds the character types <strong>std::char16_t</strong> and <strong>std::char32_t</strong> (and corresponding string types std::u16string and std::u32string) for use with UTF-16 and UTF-32 encoded string values, respectively. These character types will enable developers to use Unicode portably. The syntax for creating string literals for these encodings will be as follows,</p>
<p><em>const char ch8 = u8"This is a UTF-8 encoded string";&nbsp;&nbsp;// UTF-8 string<br />const char16_t ch16 = u"This is a UTF-16 encoded string";&nbsp;// UTF-16/UCS-2 string<br />const char32_t ch32 = U"This is a UTF-32 encoded string";&nbsp;// UTF-32/UCS-4 string</em></p>
<p>char16_t data types can represent only UCS-2, because it is not possible to fit a UTF-16 surrogate pair (i.e. two 16-bit values) in a single char16_t variable. However it will support UTF-16 provided it is within the BMP. This essentially means that the limitation of C++03 for supporting UTF-16 with surrogate characters is also there in C++0x. Developers have to rely on third party libraries if they want full support for UTF-16.</p>
<p>C++0x also offers conversions among encodings using additional codecvt facets. In addition to this it also adds the possibility to have I/O based encoding conversions without changing the stream locale and in-memory encoding conversions. This will definitely solve a lot of encoding conversion issues for which developers had to rely on third party libraries.</p>
<p>Seeing the pros and cons of C++0x, it does seem that it is going to solve a lot of problems for developers who want to add Unicode support to their C++ programs portably and easily. For applications which won't support surrogate pairs, C++0x will be able to take care of Unicode support, else third party libraries might still have to be used. Whatever is the case, this is definitely a positive development for the C++ world and the development community is eagerly awaiting its mainstream release. <a href="http://gcc.gnu.org/projects/cxx0x.html">GCC 4.3</a> offers C++0x support on an experimental basis. If anyone has used it, they may share their experience with the Unicode support provided.</p>]]>
    </content>
</entry>

<entry>
    <title>Akamai&apos;s presence in Cloud and Mobile Computing Infrastructure</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2011/07/akamais_presence_in_cloud_and.html" />
    <id>tag:www.infosysblogs.com,2011:/engineering-software//11.4839</id>

    <published>2011-07-27T11:41:43Z</published>
    <updated>2011-07-27T12:05:13Z</updated>

    <summary>Early this year, Tom Leighton, co-founder of Akamai Technologies - a company that provides a distributed computing platform for global internet content and delivery, delivered an insightful talk at the Bangalore campus. Though the talk was obviously focused on what...</summary>
    <author>
        <name>Suraj Nair</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="akamai" label="Akamai" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cdn" label="CDN" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cloudcomputing" label="Cloud Computing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="distributedcomputing" label="Distributed Computing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mobility" label="Mobility" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[<p>Early this year, <a href="http://people.csail.mit.edu/ftl/">Tom Leighton</a>, co-founder of <a href="http://en.wikipedia.org/wiki/Akamai_Technologies">Akamai Technologies </a>- a company that provides a distributed computing platform for global internet content and delivery, delivered an insightful talk at the Bangalore campus. Though the talk was obviously focused on what Akamai Technologies had to offer in today's world of cloud and mobile computing, it was indeed interesting to understand some of the technical principles behind the development of their solutions.<br />Fundamentally, Akamai enables infrastructure optimization, application awareness, cloud security and global network acceleration.</p>
<p>&nbsp;</p>]]>
        <![CDATA[<p><strong>Evolution of components in the data center</strong></p>
<p>One could visualize the earliest datacenter to be a web server, which simply stored and served static contents on demand. With more and more demand, multiple web servers were required with the introduction of a load balancer. With time, complicated processing came to be expected out of such data centers, and hence along came application servers. Rising popularity of such architectures resulted in the need to thwart security attacks and hence, SSL and Authentication servers were introduced into the datacenter deployment. With rising expectations of modern media delivery, there came the need to build video streaming infrastructure. More load balancers were required to meet scaling needs. Compression and Connection Management Servers, forward caching servers, intrusion detection systems all were requirements that added to the complexity of data center deployments. Technologies like those in Akamai's servers (placed on the edges of the public network) implemented a lot of the above components within using commodity software and much more, thereby eliminating the need for supporting components within data centers.</p>
<p><strong></strong>&nbsp;</p>
<p><strong>Akamai's server deployment</strong></p>
<p>There are more than 85,000 Akamai servers deployed along the edges of the internet in 650+ cities and 71 countries. What this means is that there is an Akamai server near every user on the internet - ready to intercept and process traffic before routing it through multiple high speed paths (using Akamai's own routing, communication protocols and on their own virtual network of servers) to the destination data centers. Akamai has developed partnerships with several ISPs so as to use Akamai servers to deliver content reliably and at enhanced performance. Such partnerships can be beneficial to enterprises that collaborate with Akamai for their solutions.</p>
<p><strong></strong>&nbsp;</p>
<p><strong>Static content delivery and transactions</strong></p>
<p>Akamai, being basically a Content Delivery Service provider, can cache static content on their servers and serve those contents quickly on demand to user computers. Additionally, when in need of dynamic content, Akamai's virtual network of servers and protocols ensure that round trip to the data center and back happens much faster than when deployed ordinarily on the internet.&nbsp; Akamai's <em>Sure Route</em> solution promises to optimize routing and performance while their <em>Intelligent Prefetching</em> solution is apparently designed to reduce round trips, something that is expected to improve performance during large downloads.<br /></p>
<p>Cloud and ecommerce solutions typically rely on Akamai like deployments to improve performance. Some of <a href="http://www.riverbed.com/us/">Riverbed </a>solutions in the world of content delivery services are similar to Akamai, but what seems to give Akamai the edge is the ability to perform dynamic route selection using its own virtual network on the internet to deliver performance. Competitive solutions like those from&nbsp;<a href="http://www.riverbed.com/us/">Riverbed </a>would probably be of use for collaborations between a company's headquarters and the branch office on a common network. Akamai, being on the internet, promises to allow seamless communication between a company's headquarters for instance and their business partners on a different network.</p>
<p>&nbsp;</p>
<p><strong>The issue of security</strong></p>
<p>Tom shared that even today, the state of internet security is bad. Infact, cybercrime costs global business $1 trillion/year with at least 75% of Asia-Pacific organizations having experienced some sort of cyber attack last year. <br />It is important to block attacks at the source. As an analogy, Tom mentioned that like in war, it would be better off fighting the enemy on their soil that on your soil. Akamai server deployments enable their filters to do just that and allow traffic from only valid users to the site. However, it is difficult sometimes to distinguish from what is a good request and what is a bad request. <br />Denial of Service attacks occurs by swamping data center pipelines with traffic of proportions that data centers cannot handle. The presence of Akamai servers on the edges of the internet, near the source of the traffic, prevents the data center end point from being simultaneously swamped, as a lot of bad traffic can be filtered at the source.</p>
<p>&nbsp;</p>
<p><strong>Increase in Mobile network traffic</strong></p>
<p>Global mobile data traffic is understood to have grown three times in 2010. According to an independent analysis, mobile traffic last year was three times than of the internet traffic in 2000.&nbsp;A comprehensive majority&nbsp;of retailers have acknowledged the need to embrace mobile commerce to stay alive in competition. </p>
<p><a href="http://en.wikipedia.org/wiki/GPRS_Core_Network#Gateway_GPRS_Support_Node_.28GGSN.29">GGSN </a>(Gateway GPRS Support Node)&nbsp;is often the gateway to the internet for wireless networks. Akamai servers exist in GGSNs to intercept traffic entering the internet. Akamai's Mobile Optimization solutions perform transcoding of content at the edge as content needs modification to display appropriately on the target device type (iPhone, Blackberry, iPad devices etc). This seems something similar to Infosys' mConnect solution.</p>
<p>&nbsp;</p>
<p><strong>Akamai influences</strong></p>
<p>IBM seems to&nbsp;have embraced Akamai solutions - considering that IBM Websphere is now pre-configured for Akamai. Though Akamai is typically configured outside the firewall, there is a case of IBM having businesses within firewalls&nbsp;where Akamai is used in a private cloud model. Amazon.com and its video services&nbsp;are understood to use&nbsp;Akamai for acceleration. Every search in Microsoft's Bing is considered to be intercepted by an Akamai server, though as of the talk, Azure did not seem to involve Akamai yet. </p>
<p><strong></strong>&nbsp;</p>
<p><strong>Building reliability into software - how?</strong></p>
<p>Tom shared some of his principles relevant today - towards building reliability into software in developing distributed computing platform for global internet content and delivery.<br />1. Do not assume anything but failure - always plan for the worst<br />2. Ensure significant redundancy<br />3. Software for message reliability<br />4. Distributed control - If the origin crashes then serve another page based on what you want to serve. Better to have multiple regions so that you can load balance.<br />5. Fail - Stop immediately and restart - don't wait to analyze why it is moving towards failure<br />6. Zoning for releases - Release in small zones and then grow.<br />7. Notice and Quarantine Faults - Build in the ability to detect potential faults early enough and quarantine the fault.</p>
<p><br /><strong>Noticable immediate future trends</strong></p>
<p>Today, only 1% of video is online. There are indications that number is going to explode as more and more content is delivered using videos and hence the challenges of enhanced streaming performance.Everything is going mobile, but with tremendous fragmentation as vendors pull in different directions with varied technologies. Security remains a core issue going forward and there is a&nbsp;need to&nbsp;continue to safeguard against&nbsp;Denial of Service attacks. eCommerce is gaining in a major way. 20%-30% of eCommerce transactions in Japan are already on mobile, though the US is closer to 1%. Cloud computing is getting mainstream - everything is moving to the data center. The two important vulnerabilities -security and performance - as a result of moving to the data center, are issues that need to be given prime considerations in future Akamai solutions.<br /></p>]]>
    </content>
</entry>

<entry>
    <title>Security is Paramount</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2011/07/security_is_paramount.html" />
    <id>tag:www.infosysblogs.com,2011:/engineering-software//11.4791</id>

    <published>2011-07-05T10:35:47Z</published>
    <updated>2011-07-06T04:35:40Z</updated>

    <summary>Open any tech news forum on any given day and you are bound to come across a headline about Zero Day Attack on some product. Fact is that there are countless hackers around the world with malicious intentions just trying...</summary>
    <author>
        <name>Ruchin Goel</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="itsecurity" label="IT Security" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[<p style="MARGIN: 0in 0in 0pt" class="MsoPlainText"><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><font color="#000000">Open any tech news forum on any given day and you are bound to come across a headline about Zero Day Attack on some product. Fact is that there are countless hackers around the world with malicious intentions just trying to break into software through sophisticated techniques using the holes present in the software itself. It's simple - there's boundless data lying in systems and passing through various networks, and hackers try to steal it. Their only job is to continuously think of new ways to exploit vulnerabilities present in systems because vulnerabilities always exist. Even the biggest players in the industry have fallen prey to hackers who have been able to get into their systems and steal data. Some of the recent high profile cyber attacks include the <a href="http://technorati.com/technology/article/sega-the-latest-security-breach">SEGA server attack</a>, </font></span><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><font color="#000000">attack on <a href="http://www.informationweek.com/news/government/security/229700151">Lockheed Martin's VPN Access System</a>&nbsp;</font></span><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><font color="#000000">and the <a href="http://www.security-technologynews.com/news/sony-playstation-network-cyber-attack-revealed.html">Sony Playstation network attack </a></font></span><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><font color="#000000">,which unbelievably, happened twice. If reports are to be believed, attack on Sony Playstation network attack compromised credit card and other personal information of millions of users worldwide. This provides a sense of the looming threat that we are living with.<o:p></o:p></font></span></p>
<p style="MARGIN: 0in 0in 0pt" class="MsoPlainText"><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><o:p><font color="#000000">&nbsp;</font></o:p></span></p><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><font color="#000000" face="Calibri"></font></span>]]>
        <![CDATA[<p style="MARGIN: 0in 0in 0pt" class="MsoPlainText"><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><font color="#000000">This is an era of innovation where every few years we see the rise of a new technology. But with the new technology, come new security risks. If the technology does not address security effectively and to the degree needed, then it fails to make its mark. The acceptance trend of SaaS/Cloud reflects it to some extent. SaaS makes use of multi-tenancy to offer its fundamental benefits. Using SaaS means hosting your private data on cloud which naturally crops up risks of data theft or data loss. The key issue scaring institutions from adopting cloud is data security. How do you know what kind of data/applications are hosted by other consumers, whether they are genuine users or hackers. The biggest challenge for cloud vendors today is to provide a sound security model. Of course new security models like private cloud are coming up, but they have an associated cost.<o:p></o:p></font></span></p>
<p style="MARGIN: 0in 0in 0pt" class="MsoPlainText"><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><font color="#000000">Mobility is another hot area which is highly susceptible to attacks. People are becoming socially active and at any given time, uploading their personal information on the web including their current position without being aware of how secure the mobile app is.<o:p></o:p></font></span></p>
<p style="MARGIN: 0in 0in 0pt" class="MsoPlainText"><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><o:p><font color="#000000">&nbsp;</font></o:p></span></p>
<p style="MARGIN: 0in 0in 0pt" class="MsoPlainText"><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><font color="#000000">Today big businesses rely on technology and if the technology breaks down, so does the business. Web based technologies have become a part of our lives and we can't imagine life without internet. From shopping, to sending gifts, to banking, everything is online. It is like putting all your money out on the internet. Do we ever take a moment to think the degree of risk that we pose to ourselves. According to the stats published in 2010 Trend and Risk Report by IBM, web based attacks form a major part of all attacks. Among the various flavors of web attacks, cross-site scripting and SQL injection continue to occupy the top spot.<o:p></o:p></font></span></p>
<p style="MARGIN: 0in 0in 0pt" class="MsoPlainText"><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><o:p><font color="#000000">&nbsp;</font></o:p></span></p>
<p style="MARGIN: 0in 0in 0pt" class="MsoPlainText"><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><font color="#000000">Top product vendors frequently release security updates to patch up existing holes in a bid to save their customers from hackers. But this is just the damage control exercise; the actual damage has been done early on in the product development life cycle. Security loopholes are introduced right in the requirements stage and they come into existence during development. This is why it is important to consider security while architecting for NFRs. While it is not possible to write 100% secure software, vulnerabilities can definitely be reduced if enterprises try to become as smart as a hacker. This requires focused effort by architecture and development team and a larger role by the QA team. They need to think like a hacker and try to rip apart the software in as many ways as possible. This can be achieved by penetration testing. Various penetration testing tools are available in market which helps in identifying vulnerabilities. This is the most important cycle where vulnerabilities can be detected and patched before the product is released to market.<o:p></o:p></font></span></p>
<p style="MARGIN: 0in 0in 0pt" class="MsoPlainText"><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><o:p><font color="#000000">&nbsp;</font></o:p></span></p>
<p style="MARGIN: 0in 0in 0pt" class="MsoPlainText"><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><font color="#000000">We think about Security in all aspects of real life but what happens when it comes to software, why are we so lax in writing secure programs, building secure networks? The reason is that in most probability we have not been "hit" or "hacked" and so we fail to realize the seriousness of the issue. Actually we should learn before being hit but unfortunately we seem to prefer it the other way - get hit and then learn. This mindset needs to change. Business Analysts, Software Engineers, architects, developers, QA, all need to start looking at the security aspect right at the beginning of their respective stages.<o:p></o:p></font></span></p>
<p style="MARGIN: 0in 0in 0pt" class="MsoPlainText"><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><o:p><font color="#000000">&nbsp;</font></o:p></span></p>
<p style="MARGIN: 0in 0in 0pt" class="MsoPlainText"><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><font color="#000000">It is time that we start taking Security seriously because there is always someone trying to attack from somewhere.<o:p></o:p></font></span></p>
<p style="MARGIN: 0in 0in 0pt" class="MsoPlainText"><span style="FONT-FAMILY: 'Calibri', 'sans-serif'; FONT-SIZE: 11pt"><font color="#000000">Remember, Security is Paramount!<o:p></o:p></font></span></p>]]>
    </content>
</entry>

<entry>
    <title>Native Mobile Apps or Mobile Web Solution?</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2011/05/native_mobile_apps_or_mobile_w.html" />
    <id>tag:www.infosysblogs.com,2011:/engineering-software//11.4644</id>

    <published>2011-05-19T09:57:33Z</published>
    <updated>2011-05-19T11:08:47Z</updated>

    <summary>Mobile enabling their business is one of the latest trends most companies around the world are following. When a company decides to mobile enable their business, they want to target the maximum number of customers possible. Over the past few...</summary>
    <author>
        <name>Aviraj Singh</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="android" label="android" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="blackberry" label="blackberry" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ipad" label="ipad" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="iphone" label="iphone" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mconnect" label="mconnect" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mobility" label="Mobility" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[Mobile enabling their business is one of the latest trends most companies around the world are following. When a company decides to mobile enable their business, they want to target the maximum number of customers possible. Over the past few years any company engaged in B2C or B2B model have made their presence felt in the mobile world. Businesses ranging from banking, retailing, gaming, ticket booking to health care are all going mobile. Some companies are clear on their mobility roadmap and have a particular segment of users in mind e.g. they want to build mobile apps for people using the iPhone because the Apple App store is the largest app store currently and attracts a huge user base. Some customers might want to target the Android platform and others might want to target users irrespective of the type of mobile device they use. This leads to the million dollar question, <em>do we build a native mobile application (for one or multiple platforms) or do we go for a mobile web solution?</em> Both approaches have their own pros and cons. In the end, it is all about the user experience that a mobile solution provides to the customer.]]>
        <![CDATA[<p><font style="FONT-SIZE: 1.25em"><strong>Native Mobile Apps</strong></font></p>
<p>When a company decides to build a native mobile application, it has numerous target platforms to choose from including iOS, Android, BlackBerry, Symbian etc. Native mobile apps are platform specific e.g. they may be written using Objective C on the iOS platform or Java on the Android platform. According to Gartner, <em>the Android platform is expected to become the leading mobile platform in 2011, accounting for no less than 38.5 percent of all Smartphone's in the market. This will be followed by iOS at 19.4%, Symbian at 19.2% and BlackBerry at 13.4%.</em> Not all native platforms are the same, nor do they offer the same capabilities. Every platform has some unique features which may or may not be found in other platforms. Some platforms like the iOS are available only on Apple devices like the iPhone or iPad while others like Android are available on devices manufactured by multiple vendors. While native mobile applications can make optimum use of the device capabilities, the development and maintenance cost of native apps is also higher.</p>
<p><strong>When to go for a native mobile app:</strong><br />1. The application requires high graphics performance or native capabilities like accelerometer, Bluetooth, camera, gyroscope etc.</p>
<p>2. The application has to interface with other native applications or features of the mobile devices like contact list, calendar etc.</p>
<p>3. The application required video and audio capabilities.</p>
<p>4. The company wants to reach out to prospective customers via the various app stores and take advantage of their sales channels.</p>
<p>5. The application can be run offline.</p>
<p>&nbsp;</p>
<p><strong>What are the cons associated with native mobile apps?</strong></p>
<p>While native mobile apps provide an unmatched user experience, companies should keep the following in mind before making the decision to go for them,</p>
<p>1. The mobile platform world is very fragmented and cross-platform development is not possible. All the mobile platforms have different platform capabilities and provide their own SDKs for development. This essentially means writing a single piece of code which works seamlessly on all platforms is not possible. A separate code stream has to be maintained for each platform.</p>
<p>2. Higher development and training cost since companies have to develop native apps for multiple platforms if they want to ensure maximum reach.</p>
<p>3. The cost of maintenance and support of the native apps increases depending on the number of platforms supported.</p>
<p>4. Customers have to upgrade the native apps whenever a patch or newer version is released.</p>
<p>&nbsp;</p>
<p><font style="FONT-SIZE: 1.25em"><strong>Mobile web solutions</strong></font></p>
<p>When a company decides to mobile enable its website, it essentially wants that customers should be able to access their website from their mobile phones. The mobile version of the website should be optimized for browsers present in hand held devices. It should not matter whether someone has a Smartphone or not. Technically, the mobile phones should be WAP or GPRS enabled and should have a mobile browser; which more or less every mobile device has these days. A company can reach out to many more customers using a mobile web solution in comparison with a native mobile app which will target a specific platform only. There are a number of solutions in the market which can be used to mobile enable your company's website with minimal changes while ensuring that the website will be accessible on a broad range of mobile devices having varied screen sizes and resolutions. Some of these solutions include, <a href="http://www.infosys.com/offerings/products-and-platforms/mConnect/Pages/index.aspx">Infosys mConnect</a>, <a href="http://www.antennasoftware.com/mobile-platform/amp">Antenna Mobility Platform (AMP)</a>, <a href="http://www.netbiscuits.com/products/platform">netbiscuits Mobile Cloud Platform</a>, <a href="http://jquerymobile.com/">jQuery Mobile Framework</a> etc. Using these solutions, companies can create an effective mobile experience for their customers across all platforms and devices. Some of the advantages offered by these solutions are,</p>
<p>· Accelerated mobile enablement of websites.</p>
<p>· Support for broadest range of mobile devices - iPhone, iPad, BlackBerry, Android, Windows mobile etc.</p>
<p>· Provide detailed analytics of usage patterns.</p>
<p>· Take advantage of running the applications on a mobile cloud.</p>
<p>· Lower cost of mobile enablement, maintenance and support</p>
<p><br /><strong>When to go for a mobile web solution:</strong></p>
<p>1. The most important use case if when the company wants a build once, run anywhere solution.</p>
<p>2. The business is mostly transaction driven e.g. banking, retailing, ticket booking, online reservations etc.</p>
<p>3. The application has heavy backend processing and wants to take advantage of cloud technologies.</p>
<p>4. It is desirable to have lower development, maintenance and support costs.</p>
<p>5. Customers don't have to download or upgrade applications.</p>
<p><br /><strong>What are the cons associated with mobile web solutions?</strong></p>
<p>1. Mostly mobile web solutions cannot take advantage of native capabilities of the devices or platforms. Many of the platforms exposed APIs are not available to the phone browser and hence not available to the mobile web application.</p>
<p>2. Browser fragmentation exists among platforms which means the application has to be designed keeping in mind the capabilities of different browsers supported by each platform. However by using a middleware platform like <a href="http://www.infosys.com/offerings/products-and-platforms/mConnect/Pages/index.aspx">Infosys mConnect</a>, cross-platform solutions can be developed which behave well on all devices.</p>
<p>3. High bandwidth requirements.</p>
<p><font style="FONT-SIZE: 1.25em"><strong></strong></font>&nbsp;</p>
<p><font style="FONT-SIZE: 1.25em"><strong>Is there any other alternative?</strong></font></p>
<p>Sometimes companies want to make their presence felt on the app stores and at the same time want to make their application available on multiple mobile platforms across a wide range of hand held devices. In such cases, companies may choose to go for a hybrid solution wherein by using certain application development frameworks, web technologies like HTML, JavaScript and CSS can be used to build cross platform native applications that can interact with the platform's features and can be deployed on the app stores. <a href="http://www.phonegap.com/">PhoneGap</a>, <a href="http://rhomobile.com/">rhomobile</a>, <a href="http://www.particlecode.com/">Particle Code</a>&nbsp;and <a href="http://www.appcelerator.com/">Appcelerator Titanium</a> are some of the leading frameworks for hybrid mobile application development. Hybrid solutions are basically web based solutions embedded within the native containers.</p>
<p><strong>When to go for a hybrid solution:<br /></strong>1. Web technologies is the preferred language for development and companies don't want to invest in training for platform specific technologies like ObjectiveC, Java, .NET etc.</p>
<p>2. Access to device specific features is required while ensuring that application is available on all devices and platforms.</p>
<p>3. The company wants to reach out to prospective customers via the various app stores and take advantage of their sales channels.</p>
<p>4. Companies want to keep the development, maintenance and support cost low.</p>
<p><strong><font style="FONT-SIZE: 1.25em"></font></strong>&nbsp;</p>
<p><strong><font style="FONT-SIZE: 1.25em">So which solution should we go for?</font></strong></p>
<p>Mobile web solutions are great in terms of device and platform independent usage, but if the solution wants to take advantage of the platform or hardware capabilities, native applications are a better solution. In the end the choice between native, web based or hybrid solutions, depends on what the application is trying to accomplish and what device characteristics are necessary for it to work. Unless native apps are a requirement, customers should opt for platform independent mobile solutions in order to ensure that the solution is accessible on maximum possible devices and has a greater customer reach.</p>]]>
    </content>
</entry>

<entry>
    <title>Offline web applications with HTML5</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2011/02/offline_web_applications_with.html" />
    <id>tag:www.infosysblogs.com,2011:/engineering-software//11.4338</id>

    <published>2011-02-16T05:14:50Z</published>
    <updated>2011-02-16T06:45:15Z</updated>

    <summary>HTML5 has introduced application caching APIs which can be used to create offline web applications. This blog post explores these APIs in details. Referring artifacts published in this post, a basic offline web application can be created.</summary>
    <author>
        <name>Nikhil Chitnis</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="localstorage" label="localstorage" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="manifestfile" label="manifest file" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="offlinewebapplication" label="Offline webapplication" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sessionstorage" label="sessionstorage" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[<div style="mso-element: dropcap-dropped; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly; mso-element-linespan: 3">
<table cellspacing="0" cellpadding="0" align="left" hspace="0" vspace="0">
<tbody>
<tr>
<td style="BORDER-BOTTOM: #000000; BORDER-LEFT: #000000; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #000000; BORDER-RIGHT: #000000; PADDING-TOP: 0in" valign="top" align="left">
<p style="PAGE-BREAK-AFTER: avoid; TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; LINE-HEIGHT: 46.3pt; MARGIN: 0in 0in 0pt; VERTICAL-ALIGN: baseline; mso-element: dropcap-dropped; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly; mso-element-linespan: 3; mso-line-height-rule: exactly" class="MsoNormal"><span style="FONT-SIZE: 60pt; mso-bidi-font-size: 11.0pt; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-text-raise: -3.5pt">W<o:p></o:p></span></p></td></tr></tbody></table></div>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font size="3">eb applications are preferred over desktop applications because they are available 24x7 and are accessible from anywhere in the network. A couple of years back, the term <i style="mso-bidi-font-style: normal">network</i> implied wired-network but more recently, due to availability of high-speed wireless networks and handy mobile devices, the dependency over wired-network has diminished greatly. Via wireless connectivity, web applications are now accessible from literally anywhere. But there could be situations when internet connectivity may get lost. This loss of connectivity could be due to various reasons, like user is in transit or is switching between networks or is simply at a remote location where the wired/wireless network isn't available. </font></p>]]>
        <![CDATA[<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font color="#000000" size="3"></font>&nbsp;<font color="#000000" size="3">Major drawback of a typical web application is that, the moment internet connectivity is lost; it can no longer be accessed or used. Most of the desktop applications do fairly well in this situation. They switch to disconnected or offline mode and ensure continuous user experience even during loss of network connectivity. Offline mode requires availability of local cache. Applications keep a copy of the online data and the data entered during the offline mode in application cache. Example of a desktop application supporting disconnected mode is e-mail client application. It caches e-mail folders and calendar appointments locally and allows browsing them in offline mode.</font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font color="#000000" size="3">Designing web application to support offline mode has been a challenge so far. Various architectural solutions exists which either requires setting trust relationship in browser or involves smart client installation. HTML5 recognized this architectural pain-point and elegantly provisioned for offline capability. Let's see how.</font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font color="#000000" size="3">Developing an offline web application has twofold issues. One, how to make web application/pages available in disconnected mode and two, how to cache large data?</font></p>
<p style="MARGIN: 0in 0in 10pt" class="MsoSubtitle"><em><font color="#4f81bd" size="3">Making pages available offline</font></em></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font color="#000000" size="3">All browsers have some sort of caching mechanism. Most of the browsers offer "work offline" feature on top of this mechanism. Leveraging browser's "work offline" feature might appear as an easy way for developing an offline web application but it has the following limitations. </font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpFirst"><font color="#000000"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3">1.</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3">In offline mode, only previously visited pages can be viewed</font></font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpMiddle"><font color="#000000"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3">2.</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3">To be able to view pages from cache, user has to manually put the browser in offline mode and once internet connection is available, he has to toggle it back to on-line mode</font></font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpLast"><font color="#000000"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3">3.</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3">A web page can have multiple links and web application developer has no control over which parts of the page (like the external script files, image resources etc) or depth of links that the browser caches when user visits the online web application</font></font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraph"><font color="#000000"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3">4.</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3">Browser dumps all web pages that user visits at a common location. Moreover, while cleaning browser's temporary storage, there isn't any way to retain cached pages pertaining to a specific web site or web application. Hence, there are good chances of losing the offline page viewing capability after running cleanup application.</font></font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font size="3"><font color="#000000">HTML5 attempts to resolved such issues with application caching API, which is the mechanism to ensure web application's availability in disconnected mode. Application caching API begins with </font><span style="COLOR: red">manifest</span><font color="#000000"> attribute on </font><span style="COLOR: red">html</span><font color="#000000"> element. This attribute takes URI of the manifest file. Manifest file is a simple text file listing the web page resources, like image or external scripts, which the browser should or should never cache. The manifest file can have any name but it has to be identified as </font><span style="COLOR: red">text/cache-manifest</span><font color="#000000"> MIME type resource on web server.</font></font>&nbsp;</p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font color="#000000" size="3"></font><img style="TEXT-ALIGN: center; MARGIN: 0px auto 20px; DISPLAY: block" class="mt-image-center" alt="Manifest.jpg" src="http://www.infosysblogs.com/engineering-software/images/Manifest.jpg" width="389" height="466" /></p>
<p style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class="MsoCaption" align="center"><strong><font color="#4f81bd" size="2" face="Calibri">Figure <span style="mso-no-proof: yes">1</span> manifest.cache</font></strong></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font color="#000000" size="3">In figure <b>1</b>, shows manifest file details. As suggested by MIME type (set on web server), the manifest is a text file. The file is divided in following 3 logical sections&shy;</font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpFirst"><font color="#000000"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3">1.</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3">Cache - This section lists the resources which should be cached after loading them. </font></font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpMiddle"><font color="#000000"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3">2.</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3">Network - This section contains the white-listed resources. That is the resources browser should never cache. Browser always bypasses cache and contacts server while loading resources listed in this section</font></font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpLast"><font color="#000000"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3">3.</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3">Fallback - This section details the backup strategy. If browser fails retrieving original content (koala.jpg in this case) then browser should use fallback resource (Jellyfish.jpg in this case)</font></font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font size="3"><font color="#000000">After creating the manifest file, add its reference in the </font><span style="COLOR: red">html</span><font color="#000000"> element on the web page as shown in figure 2.</font></font>&nbsp;</p>
<p style="MARGIN: 0in 0in 10pt" class="MsoSubtitle"><em><font color="#4f81bd" size="3"><img style="TEXT-ALIGN: center; MARGIN: 0px auto 20px; DISPLAY: block" class="mt-image-center" alt="OffLineWebApp.jpg" src="http://www.infosysblogs.com/engineering-software/images/OffLineWebApp.jpg" width="752" height="353" /></font></em></p><font color="#4f81bd" size="2" face="Calibri">
<p style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class="MsoCaption" align="center"><strong>Figure <span style="mso-no-proof: yes">2</span> offline.html</strong></p></font>
<p style="MARGIN: 0in 0in 10pt" class="MsoSubtitle"><em><font color="#4f81bd" size="3">Caching user data</font></em></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font color="#000000" size="3">The second important requirement for an offline web application is client side caching. Typically cookies are used for client side data caching. But from an offline web application's perspective, cookies are not useful because</font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpFirst"><font color="#000000"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3">1.</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3">Most&nbsp;browsers restrict cookie size to 4 KB and don't allow more than 20 cookies per domain. This makes a maximum of 80KB storage space available as client side cache. Which could be OK from session tracking perspective but is too scanty for an offline application (Note: cookies are primarily for HTTP state management).</font></font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpLast"><font color="#000000"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3">2.</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3">Cookies don't support transaction boundaries and tend to "leak" information across browser windows. For example, while booking ticket from a single site, if 2 browser windows are used to navigate ticket/route information, there is very good chance that the user unintentionally ends up buying 2 tickets, if the ticket booking site relies on cookies to keep track of the ticket being bought.</font></font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font size="3"><font color="#000000">To address above issues, HTML5 has introduced </font><span style="COLOR: red">localStorage</span><font color="#000000"> and </font><span style="COLOR: red">sessionStorage</span><font color="#000000"> objects. The sessionStorage fixed the "leak" issue described in point 2, whereas localStorage is the really targeted at offline web applications. Both the storage objects don't have storage size restrictions and they unleash megabytes of (and more based on user setting) client-side caching space. For developers, the local and session storage objects are available as attributes of the Windows object which is part of browser's DOM hierarchy. Both the storage objects store data in as key/value pair.</font></font></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font size="3"><font color="#000000">Storing and retrieving data from </font><span style="COLOR: red">localStorage</span><font color="#000000"> object is shown in GetUserID and SetUserID functions in figure 3.</font></font>&nbsp;</p>
<p style="MARGIN: 0in 0in 10pt" class="MsoSubtitle"><b><span style="FONT-STYLE: normal"><font color="#4f81bd"><font size="3"><img style="TEXT-ALIGN: center; MARGIN: 0px auto 20px; DISPLAY: block" class="mt-image-center" alt="ActivationScript.jpg" src="http://www.infosysblogs.com/engineering-software/images/ActivationScript.jpg" width="632" height="482" /></font></font></span></b></p><span style="FONT-STYLE: normal"><font color="#4f81bd"><font size="2" face="Calibri">
<p style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class="MsoCaption" align="center"><strong>Figure <span style="mso-no-proof: yes">3</span> Activation.js</strong></p></font></font></span>
<p style="MARGIN: 0in 0in 10pt" class="MsoSubtitle"><b><span style="FONT-STYLE: normal"><font color="#4f81bd"><font size="3">Making it work<o:p></o:p></font></font></span></b></p>
<p style="PAGE-BREAK-AFTER: avoid; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font color="#000000" size="3"><img style="MARGIN: 0px 20px 20px 0px; FLOAT: left" class="mt-image-left" alt="FolderStructure.jpg" src="http://www.infosysblogs.com/engineering-software/images/FolderStructure.jpg" width="180" height="229" />With this basic information, let's try to prepare a web application for offline mode. To begin with, create manifest.cache, offline.html and activation.js as per figure 1, 2 &amp; 3. Then create folder structure as seen in figure 4. Note that the stylesheet.css is optional. Remove stylesheet.css entry from the manifest file if you don't want to apply common style to multiple pages. Now, map OfflinePage folder (ref: figure4) as virtual directory in IIS (any other web-server can also be used for publishing is web application). <span style="mso-spacerun: yes">&nbsp;</span>Then access Offline.html page as <a href="http://localhost/OffLinePage/Offline.html">http://localhost/OffLinePage/Offline.html</a>. <br /><br /></p>
<p style="PAGE-BREAK-AFTER: avoid; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><font color="#000000" size="3"><strong><font size="2"><font color="#4f81bd"><font face="Calibri">Figure <span style="mso-no-proof: yes">4</span> Folder structure</font></font></font></strong></font></font></p><font color="#000000" size="3">
<p style="PAGE-BREAK-AFTER: avoid; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal">While loading Offline.html page, browser may seek user permission to cache page content. Allow browser to cache. Then stop IIS, close the browser and try accessing http://localhost/OffLinePage/Offline.html. The browser would not only load Offline.html but it would also show SecondPage.htm after clicking the "Visit this link" hyperlink. Note that browser cached SecondPage.html page even though it was never visited while IIS was ON and serving pages. Using <img class="mt-image-none" alt="SetUserID.jpg" src="http://www.infosysblogs.com/engineering-software/images/SetUserID.jpg" width="77" height="24" />&nbsp;button, any text string can be stored in browser's local storage and the stored string can be retrieved using <img class="mt-image-none" alt="GetUserID.jpg" src="http://www.infosysblogs.com/engineering-software/images/GetUserID.jpg" width="78" height="24" />button </font></p>
<p style="MARGIN: 0in 0in 10pt" class="MsoNormal"><strong><em><font color="#4f81bd"><font size="3"><span class="MsoIntenseEmphasis">Note:</span><span class="MsoIntenseEmphasis"><span style="mso-bidi-font-weight: normal"><o:p></o:p></span></span></font></font></em></strong></p>
<p style="PAGE-BREAK-AFTER: avoid; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpFirst"><font color="#000000"><span style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><span style="mso-list: Ignore"><font size="3">·</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3">&lt;!DOCYPE html&gt; declaration is a mechanism to distinguish HTML5 html page</font></font></p>
<p style="PAGE-BREAK-AFTER: avoid; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpMiddle"><span class="MsoIntenseEmphasis"><span style="FONT-STYLE: normal; FONT-FAMILY: Symbol; FONT-WEIGHT: normal; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><span style="mso-list: Ignore"><font color="#4f81bd"><font size="3">·</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></span></span></span><font size="3"><font color="#000000">Before trying to access Offlline.htm from browser, ensure .cache files are mapped to </font><span style="COLOR: red">text/cache-manifest</span><font color="#000000"> MIME type in IIS<span class="MsoIntenseEmphasis"><span style="FONT-STYLE: normal; FONT-WEIGHT: normal"><o:p></o:p></span></span></font></font></p>
<p style="PAGE-BREAK-AFTER: avoid; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpMiddle"><font color="#000000"><span style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><span style="mso-list: Ignore"><font size="3">·</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3">Above code worked well with FireFox 3.6.10, Safari , 5.0(7533.16), Opera 11.00, Chrome 9.0.597.98 but did not work on IE 8.0.7600.16385</font></font></p>
<p style="PAGE-BREAK-AFTER: avoid; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpMiddle"><font color="#000000"><span style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><span style="mso-list: Ignore"><font size="3">·</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3">The same HTML files would work on mobile platforms</font></font></p>
<p style="PAGE-BREAK-AFTER: avoid; TEXT-ALIGN: justify; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpLast"><font color="#000000"><span style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><span style="mso-list: Ignore"><font size="3">·</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font size="3">Setting MIME type for the manifest file on web server, definition of stylesheet.css &amp; contents of SecondPage.htm are not included in this post for brevity</font></font></p>
<p style="MARGIN: 0in 0in 10pt" class="MsoNormal"><o:p><font color="#000000" size="3">&nbsp;</font></o:p></p>
<p style="TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify; MARGIN: 0in 0in 10pt" class="MsoNormal"><b><span style="FONT-STYLE: normal"><font color="#4f81bd"><font size="3">&nbsp;</p>
<p style="MARGIN: 0in 0in 10pt" class="MsoSubtitle"></font></font></span></b></p>]]>
    </content>
</entry>

<entry>
    <title>The cloud in mobility use cases</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2011/02/the_cloud_in_mobility_use_case_1.html" />
    <id>tag:www.infosysblogs.com,2011:/engineering-software//11.4324</id>

    <published>2011-02-10T05:51:18Z</published>
    <updated>2011-02-10T13:36:27Z</updated>

    <summary><![CDATA[Rupert Murdoch's News Corp. launched the first iPad-only newspaper - The Daily -&nbsp;last week with the idea of targeting the growing segment of people around the world who are educated and sophisticated who would expect content to be delivered anywhere...]]></summary>
    <author>
        <name>Suraj Nair</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="cloud" label="cloud" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mobileapplications" label="mobile applications" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mobility" label="Mobility" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[Rupert Murdoch's News Corp. launched <a href="http://ibnlive.in.com/news/the-daily-first-ipad-newspaper-debuts/142251-11.html">the first iPad-only newspaper </a>- <em>The Daily</em> -&nbsp;last week with the idea of targeting the growing segment of people around the world who are educated and sophisticated who would expect content to be delivered anywhere anytime, without having to be tethered to a physical newspaper or the television. Businesses today have realized the need to exploit mobile devices to target a wide and sophisticated market place. The industry is witnessing a scramble to join the bandwagon called the mobile device enablement (hardware, software, networking etc) and servicing industry. The need to be one-up in a new and highly competitive industry has spawned solutions that enable more and more complex use cases around mobile devices. Most use cases typically involve some sort of collaboration. With mobile devices being pervasive and in the hands of a growing knowledgeable user base, there is a need for the backend to support the potentially massive but varying scalability needs -&nbsp;&nbsp; what better than cloud computing to do the trick.<br />]]>
        <![CDATA[<p><br />Every day, there are more and more innovative mobile applications being developed which in turn, excite more people to hook on to mobile devices to experience them. It is important to realize that the majority of such applications being used today are "connected". Though there are mobile applications that provide single user games, check and feedback on an individual's pulse rates etc. what keeps users hooked to applications are those that provide some sort of interactivity with the external world - browsing the internet, face book, twitter, movie ticket bookings, multi-user games etc. Most applications are thus going to make use of services out there in the internet. Considering that these services are going to be consumed by mobile device applications, it is important that services remain connected and scale easily. The phone is pervasive and the cloud provides the scale that needs to support this pervasiveness with lots of apps running on this phone. </p>
<p><em>"The Daily"</em> is the latest example of how the News and Publishing industry is trying to exploit the&nbsp;iPad's popularity for new sources of revenue (online advertisements to a large base). "<em>The Daily"</em> is attempting to grab market share by&nbsp;focusing on&nbsp;video and graphics that can be manipulated using the iPad's touch screen and photos that offer 360-degree, panoramic views at the swipe of a finger. Going forward, as the number of subscribers to this service increase, there will be a need to scale to account for peak connections and yet maintain the experience - something that a cloud based solution can help achieve. Additionally, there will be a need to scale storage as news material is churned out by the hour in video, audio, text and other formats. Adopting the cloud for scale and infrastructure needs will allow IT teams to focus on considering ways to enhance news delivery and end user experience to stay ahead of competitors like "The New York Times", "USA Today" and others.</p>
<p>Skype, the popular voice communication service, is considered to be offered through cloud computing. Considering that <a href="http://www.skype.com/intl/en-us/get-skype/on-your-mobile/skype-mobile/">Skype Mobile</a> is getting more and more popular with people using Skype to communicate using smartphones, the move to the cloud will facilitate the need to scale as more and more people collaborate. On Skype, it is probably not important where the processing takes place .Rather, for the average Skype user, it is the ability to communicate quickly, accurately, and for a relatively low cost that makes it a useful tool. </p>
<p>Multi-player mobile online games (iPhone's Galcon etc) are also gaining in popularity. Such games often establish massive multi user mobile virtual communities. In some games, players of the game can select a virtual persona for themselves and inhabit and live in a simulated virtual world. When navigating through the virtual world, users can contact and interact directly with other players in real time, have live real time chats with other human players, interactively co-operate with others to solve certain tasks etc. To achieve a seamless experience, what this would basically require is&nbsp; mobile devices containing high end processors ( ARM's Cortex-A9 multicore processors for example),high speed modern wireless networking technologies (3G, 4G) and backend scalability requirements handled in a cloud-based infrastructure architecture</p>
<p>Smartphones and other mobile devices are well on the path to becoming an integral part of a user's life in connecting him with people, information and the world. With the massive growth in the mobile device enablement(hardware, software) and service industry, in addition to the use cases of a phone or a laptop, devices today are equipped with gaming, social networking, photography, health, banking &amp; payments, learning, productivity and other diverse&nbsp; applications. Juniper Research expects the total market for cloud-based mobile apps to grow 88 percent between 2009 and 2014. Marrying cloud computing with the mobile application industry will enable exploration of new and exciting use cases - not withstanding device challenges like processing power, form factor, hardware design, software compatibility and network interoperability limitations<br /></p>]]>
    </content>
</entry>

<entry>
    <title>Rising Awareness of Cloud Computing</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2010/12/rising_awareness_of_cloud_comp.html" />
    <id>tag:www.infosysblogs.com,2010:/engineering-software//11.4140</id>

    <published>2010-12-23T12:18:14Z</published>
    <updated>2010-12-23T12:28:32Z</updated>

    <summary>It is quite gratifying that there has been a serious acceptance of the need of the IT industry to aggressively develop and adopt technologies which are far more energy efficient than those available currently. Over the last year, there has...</summary>
    <author>
        <name>Suraj Nair</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="cloudcomputing" label="Cloud Computing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="greencomputing" label="Green Computing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="virtualization" label="Virtualization" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[<br />It is quite gratifying that there has been a serious acceptance of the need of the IT industry to aggressively develop and adopt technologies which are far more energy efficient than those available currently. Over the last year, there has been increased awareness about cloud computing.&nbsp; Businesses have realized that adopting this model would result in reduced hardware and infrastructure costs, reduced IT management costs, on demand scaling to meet business needs in a pay-per-use model and much more. In addition, from a social responsibility perspective, this would also mean reduction in carbon dioxide emissions from the elimination of the need of tones of hardware, server and data center needs.]]>
        <![CDATA[<p>As per a report in the <a href="http://lite.epaper.timesofindia.com/getpage.aspx?pageid=18&amp;pagesize=&amp;edid=&amp;edlabel=TOIBG&amp;mydateHid=20-12-2010&amp;pubname=&amp;edname=&amp;publabel=TOI">Times Of India </a>, Salesforce.com's annual <a href="http://www.salesforce.com/dreamforce/DF10/home/">Dreamforce 2010 </a>event saw speakers and experts speak their mind on how cloud computing could be even more energy efficient. According to Salesforce.com CEO, Marc Benioff - research has indicated that data centers are biggest consumers of energy and adoption of cloud computing would result in a 90% reduction of energy needs. As per a research&nbsp; conducted by Salesforce.com, it was identified that 87,000 customers would have had around 1, 74,000 servers if they had been using on-premise applications. But by adopting cloud computing, the same customer requirements are now satisfied by 1,500 Dell servers and backups at the cloud hosting location -&nbsp;a&nbsp;reduction ratio&nbsp;of 50:1. It is true that not many businesses today would necessarily think "environment sustainability" - but, the sheer reduction in IT infrastructure and management costs, as seen in the above ratio, would possibly impress more and more businesses to adopt cloud computing - thereby doing the earth a favor. </p>
<p>There has no doubt been an increased awareness towards adopting cloud computing, but it is primarily the small and medium businesses that are taking the plunge - while large enterprises, though keen, seem to be analyzing and evaluating whether existing technologies are mature enough to handle enterprise level workflows and security of data on the cloud. Such enterprises rely on private clouds as opposed to public clouds - in order to have more direct control over their workflows and data. Though it is nice to see SMBs adopt cloud computing, it is important to get more and more users to use applications which are on the cloud. It is typically the large enterprises that have the larger user numbers.</p>
<p>As more and more users use applications hosted on the cloud - fuelled by promises of cheaper and highly scalable infrastructure support - there will be an increase in the amount of digital e-waste in the form of pictures, emails, file backups etc. Besides the need for users to be socially responsible as regards generating digital waste, there is a need for continuous advancements in supporting technologies like virtualization, enterprise servers etc. to prevent uncontrollably spiraling infrastructure needs at cloud hosting points and avoid the same problems that had originally resulted in the innovation called Cloud Computing.</p>]]>
    </content>
</entry>

<entry>
    <title>Internationalization considerations for Mobile applications</title>
    <link rel="alternate" type="text/html" href="http://www.infosysblogs.com/engineering-software/2010/12/internationalization_considera.html" />
    <id>tag:www.infosysblogs.com,2010:/engineering-software//11.4055</id>

    <published>2010-12-02T10:45:48Z</published>
    <updated>2010-12-16T08:26:14Z</updated>

    <summary>Mobile devices of today are no longer restricted to making or receiving phone calls or text messages. The capabilities of modern mobile devices or smart phones have exceedingly surpassed those of commercial cell phones that were launched way back in...</summary>
    <author>
        <name>Aviraj Singh</name>
        
    </author>
    
        <category term="Internationalization" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="i18n" label="i18n" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="internationalization" label="internationalization" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="l10n" label="L10n" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="localization" label="Localization" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mobileapplications" label="mobile applications" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mobility" label="Mobility" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.infosysblogs.com/engineering-software/">
        <![CDATA[Mobile devices of today are no longer restricted to making or receiving phone calls or text messages. The capabilities of modern mobile devices or <a href="http://en.wikipedia.org/wiki/Smartphone">smart phones</a> have exceedingly surpassed those of commercial cell phones that were launched way back in the 70's. A typical mobile device today is a mini computer in itself. Such devices have the capability to exchange emails, play songs, videos, multimedia, weather forecasting, GPS and a lot more. The developments in the mobile world seem to reflect the evolution that happened in the desktop computing world in the days gone by. As the operating system for mobile devices evolves with each passing day, developers around the world are creating more and more varied mobile applications catering to different user groups. For example, there are mobile applications today for social networking, banking, retailing, games etc. <em>In order to expand the user base for these applications, it is essential that the applications should be internationalized and localized so that it may be possible for users around the globe to use them</em>.]]>
        <![CDATA[<p><strong><font style="FONT-SIZE: 1.25em">Why internationalize?<br /></font></strong>There are a number of large players in the mobile device market, namely Apple, Nokia, Microsoft etc. The applications available for mobile devices depend on the OS supported by them. E.g. the iPhone supports applications for iOS while BlackBerry devices have their own applications for the BlackBerry OS. Most vendors also have their own online App stores from where these applications can be downloaded. Some of the largest mobile application stores available today are: the <a href="http://www.apple.com/itunes/">iTunes</a> App Store, BlackBerry <a href="http://appworld.blackberry.com/webstore/">App World</a>, Google <a href="http://www.android.com/market/">Android Market</a>, Nokia <a href="http://store.ovi.com/">Ovi Store</a>, Palm <a href="http://www.palm.com/us/products/software/mobile-applications.html">App Catalog</a> and Windows <a href="http://www.microsoft.com/windowsmobile/en-us/downloads/get-marketplace.mspx">Marketplace</a> for Mobile. iTunes is currently the largest App store with over 300,000 applications while Android is second with around 160,000 applications. Clearly, with so many applications being developed and made available, it is natural to assume that it is in the best interest of both application developers and mobile companies to ensure that the applications are Internationalized and available to users spread across the globe.</p>
<p><strong><font style="FONT-SIZE: 1.25em">Challenges<br /></font></strong>Mobile devices are becoming increasingly powerful in terms of processing and memory capabilities. However, there are a few areas which still pose challenges to application developers when developing rich mobile applications.</p>
<ul>
<li><strong>Limited memory</strong> - Though every new mobile device model in the market seems to be pushing memory capabilities, there is still a limitation on the amount of memory an application can use in a mobile device. The concept of virtual memory has still not evolves for mobile devices. If the application has a lot of resources, maintaining those resources on the client side will require more space, and more memory will be used when the application loads. This will impact the performance and response time of the device in general. Application developers should ensure that the client side of the application remains as light weight as possible (Thin clients) in order to get the best user experience.</li></ul>
<p><strong></strong>&nbsp;</p>
<ul>
<li><strong>Limited bandwidth</strong> - Not all countries in the world enjoy good bandwidth networks for mobile devices. While India is yet to experience the real power of 3G networks, countries like Japan and USA are already using 4G. Every time an application loads, it can choose to load its resources (images, audio/video files etc) from the server, but this in turn means using more bandwidth to download localized content to the client side. While this might not be a problem in countries having ample bandwidth support, it might however be a constraint in other countries with low bandwidth networks.</li></ul>
<p><strong></strong>&nbsp;</p>
<ul>
<li><strong>Lack of standard libraries</strong> - There is no single library available which can be used for Internationalization of mobile apps. This is mainly because internationalization of mobile applications is not a mature area yet. Using Unicode libraries like ICU in mobile devices is challenging due to the constraint of memory and performance of mobile devices. There is work going on to create a lite version of ICU specifically for mobile devices. </li></ul>
<p><strong></strong>&nbsp;</p>
<ul>
<li><strong>Lack of encoding/font support</strong> - The operating systems of all Mobile devices may not support encodings/fonts for all regions. Devices manufactured and sold in the Japan market may only support Japanese encodings while those developed for the Middle East market may support Arabic encoding only. This is again due to space constraints in mobile devices due to which language packs and fonts for all regions cannot be bundled in the devices. It may be possible to add new language packs or fonts to the device only if the OEM allows that feature.</li></ul>
<p><strong></strong>&nbsp;</p>
<ul>
<li><strong>Varying screen resolutions</strong> - There are thousands of devices in the market; each having different screen sizes, resolutions and interaction methods. Internationalization and localization of applications for such devices is challenging as the application developer has to ensure that the localized resources will display correctly no matter what the screen size or resolution is.</li></ul>
<p><strong></strong>&nbsp;</p>
<ul>
<li><strong>Multiple operating systems</strong> - There are a plethora of mobile operating systems in the market i.e. iOS, BlackBerry OS, Symbian, Android etc. It is a challenge to develop applications which are supported on most of the leading operating systems since there is no portability across operating systems.<br />Identifying the impact areas</li></ul>
<p><br />Internationalization principles remain pretty much the same with mobile applications too. All information and content which gets displayed to the user (e.g. labels, icons, messages etc) should be separated from the application code. Similar to desktop or web applications, the content for mobile applications can be static or dynamic too. Static content such as button labels, error messages etc can be stored on the device itself (in the form of an xml file for example) while dynamic content such as news, reports etc can be localized and loaded from the server. Depending on whether the content is static or dynamic, the application developer can decide whether to keep the localized content on the client or on the server. Both approaches have their pros and cons. Every mobile OS has its own way of creating resource bundles to separate localized strings from the application code.</p>
<p><font style="FONT-SIZE: 1.25em"><strong>Packaging mobile applications</strong><br /></font>Mobile applications can be downloaded and installed on mobile devices. As with desktop applications, mobile applications also require some amount of installation space and memory to run. Applications based on Java are usually packaged in the form of jar files which are stored on the device itself. The resource bundles can be packaged along with the jar or can be retrieved dynamically from the server. Another important consideration while packaging applications is to decide how many locales should be supported by the installed application. There can be two approaches. <em>The decision to choose the method of packaging is generally influenced by the amount of localized data present in the application and the encoding support available in the operating system of the mobile devices</em>.</p>
<ul>
<li>Support all (or most of) the locales when the application is installed and let the user choose the locale in which he wants to run the application. This approach provides a lot of flexibility to the user but also means that more space and memory is required on the device in order to install and run the application. This approach is not recommended if the application has a large amount of localized data because it will only increase the installation footprint. It is also worthwhile to note that not all mobile devices support all encodings. Hence if a mobile device in Japan does not support Arabic, it does not make sense to bundle Arabic resources with the application.</li></ul>
<p>&nbsp;</p>
<ul>
<li>Support only the default locale i.e. package resources corresponding to the default locale only. E.g. for mobile devices selling in Japan, the application will support only Japanese by default. If the user wants to get support for additional languages, he/she can download additional language packs for the application. This method of packaging an application, not only uses lesser space, but also makes the application flexible enough to support additional locales at runtime. <br /></li></ul>
<p>Creating applications for the global marketplace is an important objective for mobile vendors and independent software vendors operating in multiple countries. According to a Gartner <a href="http://www.gartner.com/it/page.jsp?id=1282413">report</a> '<em>Worldwide mobile application stores' download revenue exceeded $4.2 billion in 2009 and will grow to $29.5 billion by the end of 2013</em>'. Smart phones have opened up a huge market for mobile applications and it only makes sense to develop applications with a global appeal.</p>]]>
    </content>
</entry>

</feed>

