<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Technology and Leadership</title>
	<atom:link href="http://technologyandleadership.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://technologyandleadership.com</link>
	<description>The intersection of Technology and Leadership</description>
	<lastBuildDate>Sun, 16 May 2010 09:57:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Key paradigm shift from objects to contracts in the Service-Oriented world</title>
		<link>http://technologyandleadership.com/key-paradigm-shift-from-objects-to-contracts-in-the-service-oriented-world/</link>
		<comments>http://technologyandleadership.com/key-paradigm-shift-from-objects-to-contracts-in-the-service-oriented-world/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 02:07:22 +0000</pubDate>
		<dc:creator>Aruna</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[code-first]]></category>
		<category><![CDATA[contract]]></category>
		<category><![CDATA[contract-first]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[Interoperability]]></category>
		<category><![CDATA[Service Oriented]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[technology independent]]></category>
		<category><![CDATA[web service]]></category>
		<category><![CDATA[WSDL]]></category>
		<category><![CDATA[XML Schema]]></category>

		<guid isPermaLink="false">http://technologyandleadership.com/?p=175</guid>
		<description><![CDATA[There has been a key paradigm shift from object to contract as the building block for a distributed system in the service-oriented world. Contracts are the new building blocks if we need to develop a long lasting distributed system. How focusing on contracts can improve the business objectives and make partners happier is the least [...]]]></description>
			<content:encoded><![CDATA[<p>There has been a key paradigm shift from object to contract as the building block for a distributed system in the service-oriented world. Contracts are the new building blocks if we need to develop a long lasting distributed system. How focusing on contracts can improve the business objectives and make partners happier is the least understood aspect of web services which i am going to explain in this article.</p>
<p><strong>There are two common  techniques to develop a web service:</strong></p>
<ol>
<li><strong>Code-first</strong></li>
<li><strong>Contract-first</strong></li>
</ol>
<p>Most developers start by writing the service implementation in code and then have a toolkit to produce the WSDL. This approach is called <strong>code-first development</strong>. Code-first is more common today. This is because working directly with WSDL is extremely difficult. We lack proper tool support to work directly with WSDL and hence code-first is more pleasant. In this technique the developer first codes the logic of how the data is treated within his service. Then he produces the WSDL in an automated way using a toolkit. The WSDL thus produced contains language-specific types. When the business partner wants to interact with the service contract, he realizes that his application doesn&#8217;t map nicely to the service contract coded by the developer as it contains language-specific types and he starts looking elsewhere for the service. The key principle of Service Oriented Architecture is to ensure <strong>ease-to-consume</strong> a contract. The Code-first approach is <strong>technology independent and lacks ease-of use</strong>.</p>
<p> The fundamental goal of the <strong>Contract-first model</strong> is to facilitate <strong>interoperability</strong>. The reach of a web service is unlimited. Embracing this new model of contract-first ensures <strong>happier partners</strong>. In this approach, the developer first codes the standard contracts that will be shared with the partners. Here the developer focuses on how the data is moved across service boundaries rather than within the service. He invests a lot of time and energy in contract design. He first codes the XML Schema and WSDL definitions. After everyone agrees on WSDL he implements the code. This approach embraces service orientation and is disconnected from how you treat data within a service. It is focused on connecting the dots within a distributed system as a whole. Ease-of use of the service is under the control of contract definition. The Contract definition is a shared language which is the primary focus of this model. This approach ensures that the service designed is interoperable across a wide range of platforms, operating systems and programming languages. It helps partner collaboration and meets the enterprise goals.</p>
]]></content:encoded>
			<wfw:commentRss>http://technologyandleadership.com/key-paradigm-shift-from-objects-to-contracts-in-the-service-oriented-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top down vs bottom up SOA</title>
		<link>http://technologyandleadership.com/top-down-vs-bottom-up-soa/</link>
		<comments>http://technologyandleadership.com/top-down-vs-bottom-up-soa/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 16:50:44 +0000</pubDate>
		<dc:creator>Aruna</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[bottom-up]]></category>
		<category><![CDATA[java web services]]></category>
		<category><![CDATA[MDA]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[top-down]]></category>
		<category><![CDATA[WSDL]]></category>

		<guid isPermaLink="false">http://technologyandleadership.com/?p=168</guid>
		<description><![CDATA[This article compares the two approaches of web services development - top-down and bottom-up - as the battle between the purist versus the pragmatist, the value generator versus the cost saver and the Business Evangelist vs IT implementer. Web services can be created using two methods: top-down development and bottom-up development. Top-down web services development involves creating [...]]]></description>
			<content:encoded><![CDATA[<p>This article compares the two approaches of web services development - top-down and bottom-up - as the battle between the purist versus the pragmatist, the value generator versus the cost saver and the Business Evangelist vs IT implementer.</p>
<p>Web services can be created using two methods: top-down development and bottom-up development. Top-down web services development involves creating a web service from a WSDL file. By creating the WSDL file first you will ultimately have more control over the web service. When creating a web service using a top-down approach, first you design the implementation of the web service by creating a WSDL file.When creating a web service using a bottom-up approach, first you create a Java bean or EJB bean and then use the web services wizard to create the WSDL file and Web service.</p>
<p><img class="alignnone size-full wp-image-169" title="appraoch" src="http://technologyandleadership.com/wp-content/uploads/2010/01/appraoch.png" alt="appraoch" width="698" height="228" /></p>
<p><strong><em>Should a top-down, business-centric approach be employed or a bottom-up approach, in which the Business Unit (BU) is more reactive and sensitive to the realities of IT?</em></strong></p>
<p>The <strong>Model-Driven Architecture (MDA)</strong> provides an approach aimed at achieving <strong>technology independency through full top-down development</strong>. In top-down approach the WSDL is <strong>designed from a business point of view</strong> and is not driven by a service consumer or an existing application. The &#8220;WSDL to Java&#8221; tool generates java code according to JAX-RPC or JAX-WS. These classes can then adapt the existing business logic.</p>
<p>Although bottom-up Web service development may be <strong>faster and easier</strong>, especially if you are new to Web services, the top-down approach is the recommended way of creating a Web service. The bottom up approach does generate web services which design is driven from an application point of view (developer driven) and will not address the need for other consumers.</p>
]]></content:encoded>
			<wfw:commentRss>http://technologyandleadership.com/top-down-vs-bottom-up-soa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three Schema Design Approaches</title>
		<link>http://technologyandleadership.com/three-schema-design-approaches/</link>
		<comments>http://technologyandleadership.com/three-schema-design-approaches/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 10:59:25 +0000</pubDate>
		<dc:creator>Aruna</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[chameleon]]></category>
		<category><![CDATA[heterogeneous]]></category>
		<category><![CDATA[homogeneous]]></category>
		<category><![CDATA[Namespace]]></category>
		<category><![CDATA[XML Schema]]></category>

		<guid isPermaLink="false">http://technologyandleadership.com/?p=151</guid>
		<description><![CDATA[In a project where multiple schemas are created it is critical to decide which namespace design approach is suitable for the project: (1)should we give each schema a different targetNamespace, (2)should we give all the schemas the same targetNamespace or (3)should some of the schemas have no targetNamespace. To make this critical design decision, let [...]]]></description>
			<content:encoded><![CDATA[<p>In a project where multiple schemas are created it is critical to decide which namespace design approach is suitable for the project: (1)should we give each schema a different targetNamespace, (2)should we give all the schemas the same targetNamespace or (3)should some of the schemas have no targetNamespace. To make this critical design decision, let me illustrate the three schema design approaches in this article.</p>
<h2>Heterogeneous Namespace Design</h2>
<p>1. Give each schema a different targetNamespace<br />
2. If required to re-use another schema in the current schema we need to import it</p>
<p><strong>Benefits</strong><br />
1. Maximise the re-use of the types with separate namespaces<br />
2. Namespace mapped to domain specific service<br />
3. It would be easier to model all the domain-specific types in separate files with individual namespaces<br />
4. Easier to understand<br />
<strong>Drawbacks</strong><br />
1. There will be a large number of namespaces to manage<br />
2. There will be a large number of namespaces to import<br />
3. The granularity of the types in import would depend on the types defined and exposed in a particular domain-specific XSD</p>
<h2>Homogenous Namespace Design</h2>
<p>1. Give all schemas the same targetNamespace<br />
2. As the schemas have the same targetNamespace, the method of accessing components is &#8220;include&#8221;.</p>
<p><strong>Benefits</strong><br />
1. No need to either import a service or schemas<br />
<strong>Drawbacks<br />
</strong>1. Need to handle Name collisions<br />
2. Generate code in a single Java package, for a service<br />
3. chances for redundant types<br />
4. does not allow for domain-specific namespaces</p>
<h2>Chameleon Namespace Design</h2>
<p>Give the main schema a targetNamespace and give no targetNamespace to the supporting schemas. The no-namespace schemas will take-on the targetNamepspace of the main schema.</p>
<p><strong>Benefits</strong><br />
1. In this scheme, schemas are able to blend in with the main schemas that use them<br />
2. Ability to provide application-specific namespace to the schema<br />
<strong>Drawbacks</strong><br />
If the schema &lt;include&gt;s multiple no-namespace schemas then there will be a chance of name collisions. In fact, the schema may end up not being able to use some of the no-namespace schemas because their use results in name collisions with other Chameleon components</p>
<p>The most widely used schema design approach is heterogeneous schema design approach. Let me illustrate this with an example.</p>
<p><strong>Step1: </strong>Create a schema file named Books.xsd to store book information with targetNamespace declared as <strong>tns:Books </strong>as shown in the below code snippet:</p>
<div class="codecolorer-container xml dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:schema</span> <span style="color: #000066;">xmlns:xsd</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema&quot;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066;">targetNamespace</span>=<span style="color: #ff0000;">&quot;tns:Books&quot;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066;">elementFormDefault</span>=<span style="color: #ff0000;">&quot;qualified&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:complexType</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Book&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:sequence<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Author&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;xsd:string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Title&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;xsd:string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Price&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;xsd:double&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Quantity&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;xsd:integer&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsd:sequence<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsd:complexType<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsd:schema<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p><strong>Step2:</strong> Create another schema file Sales.xsd to store the sales information with targetNamespace declared as <strong>tns:Sales</strong> as shown in the below code snippet:</p>
<div class="codecolorer-container xml dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:schema</span> <span style="color: #000066;">xmlns:xsd</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema&quot;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066;">targetNamespace</span>=<span style="color: #ff0000;">&quot;tns:Sales&quot;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066;">elementFormDefault</span>=<span style="color: #ff0000;">&quot;qualified&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:complexType</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Sales&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:sequence<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Customer&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;xsd:string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Region&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;xsd:string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;TransactionStatus&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;xsd:string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsd:sequence<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsd:complexType<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsd:schema<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p><strong>Step3:</strong> Import the two schema files in Catalog.xsd file using the Heterogeneous namespace design approach as shown in the below code snippet:</p>
<div class="codecolorer-container xml dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:450px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:schema</span> <span style="color: #000066;">xmlns:xsd</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema&quot;</span> <span style="color: #000066;">xmlns:b</span>=<span style="color: #ff0000;">&quot;tns:Books&quot;</span> <span style="color: #000066;">xmlns:s</span>=<span style="color: #ff0000;">&quot;tns:Sales&quot;</span> <span style="color: #000066;">xmlns:ns1</span>=<span style="color: #ff0000;">&quot;tns:Catalog&quot;</span> <span style="color: #000066;">targetNamespace</span>=<span style="color: #ff0000;">&quot;tns:Catalog&quot;</span> <span style="color: #000066;">elementFormDefault</span>=<span style="color: #ff0000;">&quot;qualified&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:import</span> <span style="color: #000066;">namespace</span>=<span style="color: #ff0000;">&quot;tns:Books&quot;</span> <span style="color: #000066;">schemaLocation</span>=<span style="color: #ff0000;">&quot;Books.xsd&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:import</span> <span style="color: #000066;">namespace</span>=<span style="color: #ff0000;">&quot;tns:Sales&quot;</span> <span style="color: #000066;">schemaLocation</span>=<span style="color: #ff0000;">&quot;Sales.xsd&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Catalog&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:complexType<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:sequence<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Payment&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:complexType<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:sequence<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;CustomerID&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;xsd:integer&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;PaymentType&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;xsd:string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Currency&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;xsd:string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;ShippingAddress&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;xsd:string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsd:sequence<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsd:complexType<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsd:element<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Book&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;b:Book&quot;</span> <span style="color: #000066;">maxOccurs</span>=<span style="color: #ff0000;">&quot;unbounded&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsd:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Sales&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;s:Sales&quot;</span> <span style="color: #000066;">maxOccurs</span>=<span style="color: #ff0000;">&quot;unbounded&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsd:sequence<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsd:complexType<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsd:element<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsd:schema<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://technologyandleadership.com/three-schema-design-approaches/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introduction to XML Web Services</title>
		<link>http://technologyandleadership.com/introduction-to-xml-web-services/</link>
		<comments>http://technologyandleadership.com/introduction-to-xml-web-services/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 08:35:51 +0000</pubDate>
		<dc:creator>Aruna</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[Interoperability]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[UDDI]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[WSDL]]></category>

		<guid isPermaLink="false">http://technologyandleadership.com/?p=80</guid>
		<description><![CDATA[Web services take web applications to the next level. By using Web services, your application can publish its function or message to the rest of the world. With web services, your accounting department&#8217;s Win 2k server&#8217;s billing system can connect with your IT supplier&#8217;s UNIX server.Web services can offer application-components like: currency conversion, weather reports, [...]]]></description>
			<content:encoded><![CDATA[<p>Web services take web applications to the next level. By using Web services, your application can <strong>publish its function or message</strong> to the rest of the world. With web services, your accounting department&#8217;s Win 2k server&#8217;s billing system can connect with your IT supplier&#8217;s UNIX server.Web services can offer application-components like: currency conversion, weather reports, or even language translation as services. There are things applications need very often. So why make these over and over again?</p>
<p><strong><em>Web services are units of programmable application logic located on web servers that can be accessed remotely using standard internet protocols and data formats such as XML, HTTP and SOAP.</em></strong></p>
<p>Web services are <strong>platform-independent</strong> and <strong>language-independent</strong>, since they use standard XML languages. This means that my client program can be programmed in C++ and running under Windows, while the Web Service is programmed in Java and running under Linux.</p>
<p>Web Services are published, found, and used through the Web. The basic Web services platform is <strong>XML + HTTP.</strong></p>
<p style="padding-left: 30px;"><img title="WSstandards" src="http://technologyandleadership.com/wp-content/uploads/2009/12/WSstandards4.png" alt="WSstandards" width="423" height="314" /></p>
<p> </p>
<p>Web services platform elements are:</p>
<ul>
<li><strong>SOAP</strong> (Simple Object Access Protocol)</li>
<li><strong>UDDI </strong>(Universal Description, Discovery and Integration)</li>
<li><strong>WSDL</strong> (Web Services Description Language)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://technologyandleadership.com/introduction-to-xml-web-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XML Web Services in 5 Days</title>
		<link>http://technologyandleadership.com/xml-web-services-in-5-days/</link>
		<comments>http://technologyandleadership.com/xml-web-services-in-5-days/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 06:20:11 +0000</pubDate>
		<dc:creator>Aruna</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[DTD]]></category>
		<category><![CDATA[SAX]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[XML Schema]]></category>
		<category><![CDATA[XSD]]></category>

		<guid isPermaLink="false">http://technologyandleadership.com/?p=54</guid>
		<description><![CDATA[Introduction to XML XML is the universal format for data interchange.  It is supported by all major operating systems, programming languages and development platforms.  It is the standard platform for building interoperable distributed applications.  The ability to invoke cross platform communications makes the reach of XML Technology unlimited and its use in Web Services compelling. [...]]]></description>
			<content:encoded><![CDATA[<h2><img title="XML in 5 Days - A Hands On Approach" src="http://technologyandleadership.com/wp-content/uploads/2009/12/header.jpg" alt="XML in 5 Days - A Hands On Approach" width="474" height="384" /></h2>
<h2>Introduction to XML</h2>
<p><strong>XML is the universal format for data interchange.</strong>  It is supported by all major operating systems, programming languages and development platforms.  It is the <strong>standard platform for building interoperable distributed applications.  </strong></p>
<p><strong>The ability to invoke cross platform communications makes the reach of XML Technology unlimited and its use in Web Services compelling. </strong></p>
<p>Web Services are the building blocks for constructing distributed Web-based applications. They are <strong>units of programmable application logic located on web servers that can be accessed remotely using standard internet protocols and data formats such as XML, HTTP and SOAP.</strong> Web services use XML-based messaging to send and receive data, which enables heterogeneous applications to interoperate with each other.</p>
<h2>Basic concepts of XML</h2>
<p> XML represents structured content rather than visual display. A well-formed XML document contains an end tag for every begin tag. Well-formed XML documents can be modeled as trees. The tree has a single root node containing one or more child nodes. A node without a child is called leaf node. XML Document Object Model (XML DOM) is required to work with XML data.</p>
<h3>Document Object Model (DOM) </h3>
<p>Document Object Model (DOM) is a representation of the XML document in memory.  It is used to read, write, and manipulate an XML document. <strong>DOM loads the entire XML document into memory. </strong></p>
<h3>Simple API for XML (SAX) </h3>
<p>Simple API for XML (SAX) is used to read data from XML documents. SAX parser reads the contents sequentially and generates events as it reads the XML document<strong>.  It does not load the entire XML document into memory. SAX is good for reading large XML Documents.</strong></p>
<p><strong>Limitations of SAX:</strong>  <strong>SAX does not maintain any data structures that are required to perform complex searches. They cannot be used to modify the XML document. </strong></p>
<h3>Document Type Definition (DTD)</h3>
<p>Document Type Definitions (DTD) outlines elements, attributes &amp; relationships allowed in an XML document. DTDs are written in their own syntax rather than XML syntax.</p>
<h3>XML Schema Document (XSD)</h3>
<p><strong>XML Schema Documents describe and validate the structure of XML documents.</strong>  They restrict the value of elements and attributes in an XML document. They are written in XML syntax. An XML document that adheres to XML schema is called <strong>Valid XML document</strong>. The XML Schema documents have suffix xsd.</p>
]]></content:encoded>
			<wfw:commentRss>http://technologyandleadership.com/xml-web-services-in-5-days/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XML Schema &#8211; xs:key and xs:keyref</title>
		<link>http://technologyandleadership.com/xml-schema-xskey-and-xskeyref/</link>
		<comments>http://technologyandleadership.com/xml-schema-xskey-and-xskeyref/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 08:35:01 +0000</pubDate>
		<dc:creator>Aruna</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XML Schema]]></category>
		<category><![CDATA[xs:field]]></category>
		<category><![CDATA[xs:ID]]></category>
		<category><![CDATA[xs:key]]></category>
		<category><![CDATA[xs:keyref]]></category>
		<category><![CDATA[xs:selector]]></category>
		<category><![CDATA[xs:unique]]></category>

		<guid isPermaLink="false">http://technologyandleadership.com/?p=34</guid>
		<description><![CDATA[xs:key and xs:keyref models the relationship between primary key and foreign key in a database.  xs:key ensures that the pieces of data in an XML document are unique and not null .  They enforce data integrity in the XML Document. xs:unique and xs:ID The xs:unique element and the xs:ID datatype ensure that the pieces of data in an [...]]]></description>
			<content:encoded><![CDATA[<p>xs:key and xs:keyref models the relationship between primary key and foreign key in a database.  <strong>xs:key</strong> ensures that the pieces of data in an XML document are <strong><em>unique and not null .  They <strong><em>enforce data integrity</em></strong> in the XML Document.</em></strong></p>
<p style="padding-left: 150px;"><img class="alignnone size-full wp-image-35" title="xskey" src="http://technologyandleadership.com/wp-content/uploads/2009/12/xskey.PNG" alt="xskey" width="470" height="298" /></p>
<h2>xs:unique and xs:ID</h2>
<p>The xs:unique element and the xs:ID datatype ensure that the pieces of data in an XML document are unique</p>
<p style="padding-left: 150px;"><img class="alignnone size-full wp-image-36" title="xsid" src="http://technologyandleadership.com/wp-content/uploads/2009/12/xsid.PNG" alt="xsid" width="474" height="297" /></p>
<h2>XML Schema Exercise:</h2>
<p>1. Create a Cart element. Each Cart element must have multiple instances of child Category element</p>
<p>2. Category element can have multiple instances of child Book and Sales element n</p>
<p>3. Each Book element must have a BookNumber attribute whose value is unique within Category.</p>
<p>4. Each Sales must have an ID attribute whose value matches one of these unique BookNumbers</p>
<h2><span style="color: #000080;">xs:selector and xs:field</span></h2>
<p><span style="color: #000000;">The <strong><em>identity constraint “keyBookNumber” </em></strong>does not allow the incoming xml files to have duplicate values for book number.</span></p>
<p><span style="color: #000000;"><strong>xs:selector</strong>: The context in which the primary key constraint should be applied</span></p>
<p><span style="color: #000000;"><strong>xs:field: </strong>The field that uniquely identifies the record</span></p>
<p style="padding-left: 150px;"><span style="color: #000000;"><img class="alignnone size-full wp-image-37" title="xsselector" src="http://technologyandleadership.com/wp-content/uploads/2009/12/xsselector.PNG" alt="xsselector" width="464" height="344" /></span></p>
<p><span style="color: #000000;">After applying the <strong>primary key constraint xs:key</strong> the XML Schema Document will look like this:</span></p>
<p style="padding-left: 150px;"><span style="color: #000000;"><img class="alignnone size-full wp-image-38" title="Schemaexercise1" src="http://technologyandleadership.com/wp-content/uploads/2009/12/Schemaexercise1.PNG" alt="Schemaexercise1" width="484" height="386" /></span></p>
<p><span style="color: #000000;">Now lets see the relationship between the book and sales records. As per the exercise  &#8221; each Sales must have an ID attribute whose value matches one of these unique BookNumbers&#8221;</span></p>
<p style="padding-left: 90px;"><span style="color: #000000;"> </span></p>
<p style="padding-left: 90px;"><span style="color: #000000;"><img class="alignnone size-full wp-image-47" title="relationship" src="http://technologyandleadership.com/wp-content/uploads/2009/12/relationship2.PNG" alt="relationship" width="559" height="363" /> </span></p>
<p><span style="color: #000000;">Sales ID attribute must match anyone of the unique BookNumber attribute of Book. Use <strong>xs:keyref</strong> to create this relationship.</span></p>
<p style="padding-left: 90px;"><span style="color: #000000;"><img class="alignnone size-full wp-image-48" title="output" src="http://technologyandleadership.com/wp-content/uploads/2009/12/output2.PNG" alt="output" width="525" height="636" /></span></p>
<p><span style="color: #000000;"> </span></p>
<p><span style="color: #000000;"> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://technologyandleadership.com/xml-schema-xskey-and-xskeyref/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Maturity Model</title>
		<link>http://technologyandleadership.com/project-maturity-model/</link>
		<comments>http://technologyandleadership.com/project-maturity-model/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 14:30:02 +0000</pubDate>
		<dc:creator>Aruna</dc:creator>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[Bugs triage]]></category>
		<category><![CDATA[Defect Backlog]]></category>
		<category><![CDATA[Effort Variance]]></category>
		<category><![CDATA[lessons learned]]></category>
		<category><![CDATA[Metrics]]></category>
		<category><![CDATA[OPM3]]></category>
		<category><![CDATA[Project Management Maturity Model]]></category>

		<guid isPermaLink="false">http://technologyandleadership.com/?p=15</guid>
		<description><![CDATA[Organizational Project Management Maturity Model (OPM3) is the project management maturity model proposed by the Project Management Institute (PMI). It sets the standard for excellence in project, program, and portfolio management best practices. OPM3 explains the capabilities necessary to achieve those best practices and to deliver projects successfully, consistently, and predictably. A Capability Assessment reports [...]]]></description>
			<content:encoded><![CDATA[<p>Organizational Project Management Maturity Model (OPM3) is the project management maturity model proposed by the Project Management Institute (PMI). It <strong>sets the standard for excellence</strong> in project, program, and portfolio management best practices. OPM3 explains the capabilities necessary to achieve those best practices and to <strong>deliver projects successfully, consistently, and predictably</strong>. A Capability Assessment reports one’s existing capabilities (level of maturity) and <strong>provides specific, actionable, and manageable options for developing existing capabilities further</strong>.</p>
<p>OPM3 considers that project management consists of 3 layers; wherein maturity should be improved continuously throughout the stages of <strong>standardization, measurement, control and improvement</strong>. OPM3 provides organizations with an assessment tool to evaluate their maturity in each of these 3 layers and to develop improvement plans aligned with the best practices and organizational strategy. OPM3 provides an objective basis upon which organizations can <strong>assess their maturity on a continuous scale of 0 to 100%</strong>, based on a standard developed and accepted globally by the Project Management community.</p>
<h2><span style="color: #800000;">OPM3 Model</span></h2>
<p> <img src="http://www.pmaktuell.org/uploads/PMAktuell-200601/041-Wissen.jpg" alt="OPM3 Model" /></p>
<p><em><span style="color: #333300;">Credit:Rubrik Wissen</span></em></p>
<h3><span style="color: #800000;">Some techniques to develop improvement plans:</span></h3>
<p>1. Metrics reveal the health of a project. The devil is in the details. Tracking metrics can help identify process gaps and develop improvement plans. Some examples of metrics that can be tracked in a project are as below:</p>
<ul>
<li><strong>Effort variance:</strong> tasks planned versus actual and hours planned versus actual</li>
<li><strong>Defect Backlog:</strong> Shows new and open defects by severity, functionality group and release</li>
<li><strong>Customer weighted requirements prioritization matrix</strong></li>
<li><strong>Bugs triage:</strong> Prioritize bugs according to customer impact and complexity of the fix</li>
</ul>
<p>2. Enable communication between the Project team and Auditors where cross-pollination of ideas can take place.</p>
<p>3. Document <strong>best practices and lessons learned</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://technologyandleadership.com/project-maturity-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Estimation</title>
		<link>http://technologyandleadership.com/project-estimation/</link>
		<comments>http://technologyandleadership.com/project-estimation/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 11:12:36 +0000</pubDate>
		<dc:creator>Aruna</dc:creator>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Deming]]></category>
		<category><![CDATA[Estimation]]></category>
		<category><![CDATA[Metrics]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[PERT]]></category>
		<category><![CDATA[Schedule]]></category>

		<guid isPermaLink="false">http://technologyandleadership.com/?p=3</guid>
		<description><![CDATA[Running an organization without access to relevant and pertinent performance metrics is like driving a car without any instrument. The more inspiring the final goal and challenging the deadline, the more key stakeholders are tempted to compromise on best principles of planning, management and control.  Yet, it is critical to measure project performance for cost [...]]]></description>
			<content:encoded><![CDATA[<p>Running an organization without access to relevant and pertinent performance metrics is like driving a car without any instrument. The more inspiring the final goal and challenging the deadline, the more key stakeholders are tempted to compromise on best principles of planning, management and control.  Yet, it is critical to measure project performance for cost and schedule objectives, process improvement activities for business maturity objectives and system performance and desired outcome measures for our Return on Investment (ROI) objectives.</p>
<p><img src="http://www.livingstonbuzz.com/blog/wp-content/uploads/2007/11/measurement.jpg" alt="Project Estimation" /></p>
<p><strong>Hard indicators</strong> are facts that can be measured directly, whereas <strong>soft indicators</strong> are less tangible conditions that must be measured indirectly. The time it takes to execute a task or how much it costs are typical hard indicators. Quality, expressed as customer satisfaction of needs, is one example of typical soft indicator. Hard indicators are by far more widely used; soft indicators are seen by many as being so inaccurate that they are rarely useful<strong>. As Deming (1986) stated, the most important numbers are often unknown. Management by numbers is one of the deadly diseases that have ruined many enterprises.</strong> Planning for the unknown or the importance of a detailed upfront scoping process is one of the major critical success factors for a project.</p>
<p>The success of any software project largely depends on effective estimation of project effort, time, and cost. Estimation helps in setting realistic targets for completing a project. The most important estimation that is required to be fairly accurate is that of effort and schedule. This enables you to obtain a reasonable idea of the project cost. If the team starts fully aware of the likely reasons schedules fall apart and takes some actions to minimize those risks, the schedule can become a more useful and accurate tool in the DEV process.</p>
<p>Schedules are a kind of prediction.  Good schedules come only from a team that relentlessly pursues and achieves <strong>good judgment</strong>. There is no magic formula or science for creating perfect schedules. Schedules don’t have to be perfect. Schedules need to be good enough for the team to believe in, provide a basis for tracking and making adjustments, and have a probability of success that satisfies the client, the business or the overall project sponsor. Good work estimates have a high probability of being accurate.</p>
<h2><span style="color: #800000;">Good estimates come from good designs</span></h2>
<p>Good engineering estimates are possible only if you have two things: good information and good engineers. If the spec are crap, and a programmer is asked to conjure up a number based on an incomprehensible whiteboard scribbling, everyone should know exactly what they are getting – a fuzzy scribble of an estimate.</p>
<p>There are known techniques for making better estimates. The most well-known technique is <strong>PERT</strong>, which tries to minimize risks by averaging out high, medium and low estimates. This is good for two reasons. First, it forces everyone to realize <strong>estimates are predictions, and that there is a range of possible outcomes</strong>. Second, it gives project management a chance to throttle how aggressive or conservative the schedules are.</p>
]]></content:encoded>
			<wfw:commentRss>http://technologyandleadership.com/project-estimation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
