<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7934453668602431995</id><updated>2024-10-09T07:07:27.368+05:30</updated><title type='text'>My Interest On Technology</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-102176225212765585</id><published>2013-02-22T22:15:00.000+05:30</published><updated>2013-02-22T22:15:32.898+05:30</updated><title type='text'>SOLID - OOPS</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;b&gt;Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Single responsibility principle&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; an object should have only a single responsibility. &lt;br /&gt;&lt;br /&gt;Open/closed principle&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; “software entities … should be open for extension, but closed for modification”. &lt;br /&gt;&lt;br /&gt;Liskov substitution principle&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; “objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program”. See also design by contract. &lt;br /&gt;&lt;br /&gt;Interface segregation principle&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; “many client-specific interfaces are better than one general-purpose interface.”&lt;br /&gt;&lt;br /&gt;Dependency inversion principle&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; one should “Depend upon Abstractions. Do not depend upon concretions.”&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dependency injection is one method of following this principle. &lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/102176225212765585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2013/02/solid-oops.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/102176225212765585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/102176225212765585'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2013/02/solid-oops.html' title='SOLID - OOPS'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-3006184782079957262</id><published>2013-02-17T23:43:00.001+05:30</published><updated>2013-02-17T23:43:52.516+05:30</updated><title type='text'>Spring key points</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;b&gt;IOC or inversion of control / DI or dependency injection?&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This Spring interview question is first step towards Spring framework and many interviewer starts Spring interview from this question. As the name implies Inversion of control means now we have inverted the control of creating the object from our own using new operator to container or framework. Now it’s the responsibility of container to create object as required. We maintain one xml file where we configure our components, services, all the classes and their property. We just need to mention which service is needed by which component and container will create the object for us. This concept is known as &lt;b&gt;dependency injection&lt;/b&gt; because all object dependency (resources) is injected into it by framework.&lt;br /&gt;Example:&lt;br /&gt;&amp;nbsp; &amp;lt;bean id=&quot;createNewStock&quot; class=&quot;springexample.stockMarket.CreateNewStockAccont&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name=&quot;newBid&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/bean&amp;gt;&lt;br /&gt;In this example CreateNewStockAccont class contain getter and setter for newBid and container will instantiate newBid and set the value automatically when it is used. This whole process is also called wiring in Spring and by using annotation it can be done automatically by Spring, refereed as auto-wiring of bean in Spring.&lt;br /&gt;
------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;b&gt;AOP?&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The core construct of AOP is the aspect, which encapsulates behaviors affecting multiple classes into reusable modules. AOP is a programming technique that allows developer to modularize crosscutting concerns,&amp;nbsp; that cuts across the typical divisions of responsibility, such as logging and transaction management. Spring AOP, aspects are implemented using regular classes or regular classes annotated with the @Aspect annotation&lt;br /&gt;
&lt;b&gt;Jointpoint?&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; A joinpoint is a point in the execution of the application where an aspect can be plugged in. This point could be a method being called, an exception being thrown, or even a field being modified. These are the points where your aspect’s code can be inserted into the normal flow of your application to add new behavior.&lt;br /&gt;&lt;b&gt;Advice?&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Advice is the implementation of an aspect. It is something like telling your application of a new behavior. Generally, and advice is inserted into an application at joinpoints.&lt;br /&gt;&lt;b&gt;Pointcut?&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; A pointcut is something that defines at what joinpoints an advice should be applied. Advices can be applied at any joinpoint that is supported by the AOP framework. These Pointcuts allow you to specify where the advice can be applied.&lt;br /&gt;
------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Core container module?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This module is provides the fundamental functionality of the spring framework. In this module BeanFactory is the heart of any spring-based application. The entire framework was built on the top of this module. This module makes the Spring container.&lt;br /&gt;------------------------------------------------------------------------------------------------------------&lt;br /&gt;Application context module?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The Application context module makes spring a framework. This module extends the concept of BeanFactory, providing support for internationalization (I18N) messages, application lifecycle events, and validation. This module also supplies many enterprise services such JNDI access, EJB integration, remoting, and scheduling. It also provides support to other framework. &lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/3006184782079957262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2013/02/spring-key-points.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/3006184782079957262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/3006184782079957262'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2013/02/spring-key-points.html' title='Spring key points'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-4728204623450835717</id><published>2013-02-17T22:52:00.001+05:30</published><updated>2013-02-17T22:52:02.456+05:30</updated><title type='text'>OOPs</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
The four main concepts are involved in OOP: &lt;/div&gt;
&lt;ol style=&quot;font-family: inherit;&quot;&gt;
&lt;li&gt;Abstraction &lt;/li&gt;
&lt;li&gt;Encapsulation &lt;/li&gt;
&lt;li&gt;Inheritance &lt;/li&gt;
&lt;li&gt;Polymorphism&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;em&gt;Abstraction&lt;/em&gt;
 is hiding of information from others. In case of Java, its hiding 
implementation of a method/ object. For example if an interface is 
available to outer world, so end user won’t know about implementing 
class details. This is just a kind of abstraction. Abstraction could be 
anywhere in java, wherever we hide some information, we call it 
abstraction. &lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;em&gt;Encapsulation &lt;/em&gt;is
 combining data and method along with implementation hiding within the 
class. Implementation hiding is done with the help of access modifiers (&lt;em&gt;public&lt;/em&gt;, &lt;em&gt;protected&lt;/em&gt;, package, &lt;em&gt;private&lt;/em&gt;). &lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;em&gt;Inheritance&lt;/em&gt;
 is the capability of a class to use the properties and methods of 
another class while adding its own functionality. Although inheritance 
may sometimes imply (especially in Java, where the keyword for 
inheritance is extends) that you are going to add new methods to the 
interface, that’s not necessarily true. The second and more important 
way to differentiate your new class is to change the behavior of an 
existing base-class method. This is referred to as overriding that 
method.&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;em&gt;Polymorphism&lt;/em&gt; is something like one name many forms. Polymorphism is also known as dynamic binding or late binding or run-time binding.&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;--------------------------------------------------------------------------------------------------------------------------- &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Inheritance?&lt;br /&gt;&lt;br /&gt;Definition 1:&lt;br /&gt;Java Inheritance defines an is-a relationship between a superclass and its subclasses. This means that an object of a subclass can be used wherever an object of the superclass can be used. Class Inheritance in java mechanism is used to build new classes from existing classes.&lt;br /&gt;Definition 2:&lt;br /&gt;Inheritance means to acquire property of others. It also means that we can use code of other functions and methods. Means Code reusability. In this object are defines by classes that are super class and which classes uses property of that class is known as sub class. It is very useful in Object Oriented Languages. &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;-------------------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;What is Association?&lt;br /&gt;Association is a relationship between two classes. In this relationship the object of one instance perform an action on behalf of the other class. The typical behaviour can be invoking the method of other class and using the member of the other class.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;public class MyMainClass&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;public void init()&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; new OtherClass.init();&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;/span&gt; &lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;-------------------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;What is Aggregation?&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;Aggregation has a relationship between two classes. In this relationship the object of one class is a member of the other class. Aggregation always insists for a direction.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;public class MyMainClass&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; OtherClass otherClassObj = new OtherClass();&lt;br /&gt;}&lt;/span&gt; &lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;-------------------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;What is Composition?&lt;br /&gt;Composition is a special type of aggregation relationship with a difference that its the compulsion for the OtherClass object to exist for the existence of MyMainClass.&lt;br /&gt;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;&lt;br /&gt;public class Aggregation&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;public static void main(String[] args)&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MusicPlayer player = new MusicPlayer();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Car car = new Car();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; car.addPlayer(player);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/4728204623450835717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2013/02/oops.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/4728204623450835717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/4728204623450835717'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2013/02/oops.html' title='OOPs'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-3825170642686469724</id><published>2013-02-17T19:37:00.004+05:30</published><updated>2013-02-17T19:37:55.871+05:30</updated><title type='text'>Serialization</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;1) A class should implement
 
 
 &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;java.io.Serializable interface. (&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;gives
compiler an indication)&lt;/span&gt;&lt;style type=&quot;text/css&quot;&gt;
 &lt;!--
  @page { margin: 2cm }
  P { margin-bottom: 0.21cm }
 -&lt;/style&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;2) &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;SerialVersionUID JVM
generates its based upon structure of class which depends upon
interfaces a class implements and several other factors. &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;SerialVersionUID
is used for version control of object. 


 
 
 
 &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;serialVersionUID
mismatch leads to java.io.InvalidClassException.&lt;/span&gt;&lt;style type=&quot;text/css&quot;&gt;
 &lt;!--
  @page { margin: 2cm }
  P { margin-bottom: 0.21cm }
 &lt;/style&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;3) Externalizable - Flexibility to control the serialization. using right/readExternal()&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;4) serializing not include some of the members can be achived using static variable or transient variable.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;5) Custom serialization are possible, But should take care of Provate methods, Overloading and overriding, Since the private methods reading possible only from JVM, Still what is the need for custom serialization.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;6)&amp;nbsp;


 
 
 
 &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;To
avoid java serialization&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;
you need to implement writeObject() and readObject() method in your
Class and need to throw NotSerializableException from those method.&lt;/span&gt;&lt;style type=&quot;text/css&quot;&gt;
 &lt;!--
  @page { margin: 2cm }
  P { margin-bottom: 0.21cm }
 -&lt;/style&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/3825170642686469724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2013/02/serialization.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/3825170642686469724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/3825170642686469724'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2013/02/serialization.html' title='Serialization'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-2998903578116386421</id><published>2013-02-11T23:38:00.003+05:30</published><updated>2013-02-11T23:48:00.631+05:30</updated><title type='text'>Java 1.7 features.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) JDBC 4.1 more efficient introduced with the following features:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; The ability to use a try-with-resources statement to automatically close resources of type Connection, ResultSet, and Statement&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; RowSet 1.1: The introduction of the RowSetFactory interface and the RowSetProvider class, which enable you to create all types of row sets supported by your JDBC driver.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) String objects can be as Switch literals.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; case &quot;ONE&quot;: sop(&quot;one&quot;); break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3) Automatic Type referece during Generic instance creation. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Map&amp;gt; sample = HashMap&amp;lt;&amp;gt;();&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&amp;gt; - operator called as diamond operator.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4) try statement defining resources. No need of finally method to close this resources.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; try(file reader){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return (readline)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5) Catch block to handle multiple exceptions.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; catch( arrayourofboune | numberformatexception | ex)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; since we cant use the main exception with in multple exception.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6) JVM enhancement.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7) IO - Zip File System Provider, Custom file system provider, java.nio.*, etc &lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/2998903578116386421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2013/02/java-17-features.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/2998903578116386421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/2998903578116386421'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2013/02/java-17-features.html' title='Java 1.7 features.'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-7217200387968426592</id><published>2012-12-09T22:14:00.003+05:30</published><updated>2013-02-17T19:42:17.565+05:30</updated><title type='text'>String Vs StringBuffer Vs StringBuilder</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;background-color: white; border-color: -moz-use-text-color; border-style: none; border-width: medium; color: black; font-family: Arial,Helvetica,sans-serif; overflow: hidden; text-align: left; text-decoration: none;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;String is immutable while StringBuffer and StringBuilder is mutable object.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;StringBuffer is synchronized while StringBuilder is not which makes StringBuilder faster than StringBuffer.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;Concatenation operator &quot;+&quot; is internal implemented using either StringBuffer or StringBuilder.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Criteria to choose among String, StringBuffer and StringBuilder(Simple)&lt;br /&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Use String if you require immutability,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Use Stringbuffer in java if you need mutable + threadsafety&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Use StringBuilder in Java if you require mutable + without thread-safety.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: black; font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: black; font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Criteria to choose among String, StringBuffer and StringBuilder&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;(Explained in detail)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: black; font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;If your text is not going to change use a string Class because a String object is immutable&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: black; font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;If your text can change and will only be accessed from a single thread, use a StringBuilder because StringBuilder is unsynchronized. &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: black; font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;If your text can changes, and will be accessed from multiple threads, use a StringBuffer because StringBuffer is synchronous.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: white;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/7217200387968426592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/12/string-vs-stringbuffer-vs-stringbuilder.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/7217200387968426592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/7217200387968426592'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/12/string-vs-stringbuffer-vs-stringbuilder.html' title='String Vs StringBuffer Vs StringBuilder'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-2566557047817331892</id><published>2012-04-09T17:55:00.000+05:30</published><updated>2012-04-09T17:55:03.162+05:30</updated><title type='text'>WSDL.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Web Services Description Language is an XML format for describing Web services. WSDL enables one to separate the description of the abstract functionality offered by a service from concrete details of a service description such as &quot;how&quot; and &quot;where&quot; that functionality is offered.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - Data type information for all message requests and message responses&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - Binding information about the transport protocol to be used&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - Interface information describing all publicly available functions&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - Address information for locating the specified service &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Operation patterns supported by WSDL.&amp;nbsp;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;One way&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The service receives a message.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Request - Response&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The service receives a message and sends a response.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Solicit - Response&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The service sends a message and receives a response. &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Notification&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The service sends a message. &lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/2566557047817331892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/04/wsdl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/2566557047817331892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/2566557047817331892'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/04/wsdl.html' title='WSDL.'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-2609942243968235372</id><published>2012-04-09T16:45:00.014+05:30</published><updated>2012-04-09T18:05:11.506+05:30</updated><title type='text'>Java - Annotations - Reflection</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;A Metadata Facility for the Java Programming Language.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Built-in Annotations in Java:&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Essentially tells to the compiler that method must be an overridden method. If not, then the compilers can report them as errors&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@SuppressWarnings&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Deprecated&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;User-defined Annotations:&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Things that we need to consider while creating user defined annotation is as follows. (the same will be used for all annotations)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target Annotation&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Target(ElementType.METHOD) (Constructor, Field, Type, etc)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Retention Annotation&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Retention(RetentionPolicy.CLASS) (Source Code, Class file, Run-time)&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Reflection:&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Information related to Annotation types using Reflection(java Reflection API) for any type of java elements like class, interface, method, variables, etc.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/2609942243968235372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/04/java-annotations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/2609942243968235372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/2609942243968235372'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/04/java-annotations.html' title='Java - Annotations - Reflection'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-7271985319494600593</id><published>2012-04-09T15:36:00.000+05:30</published><updated>2012-04-09T15:36:16.840+05:30</updated><title type='text'>UML - Class diagram.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&amp;nbsp;-&amp;nbsp;The class diagram is a Static diagram.&lt;br /&gt;
&amp;nbsp;- Visualizing, documenting and describing different aspect of a system.&lt;br /&gt;
&amp;nbsp;- Shows collection of classes, interfaces, associations, collaboration and constrains. &lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;Purpose.&lt;/h4&gt;&amp;nbsp;- Analysis and design of the state view of an application.&lt;br /&gt;
&amp;nbsp;- Describe responsiblities of a system.&lt;br /&gt;
&amp;nbsp;- Base for component and deployment diagrams.&lt;br /&gt;
&amp;nbsp;- Forward and reverse engineering.&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;Type of Uml diagrams.&lt;/h4&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;- Structural Diagram.&lt;br /&gt;
&amp;nbsp;- Class Diagram.&lt;br /&gt;
&amp;nbsp;- Object Diagram.&lt;br /&gt;
&amp;nbsp;- Component Diagram.&lt;br /&gt;
&amp;nbsp;- Deployment Diagram.&lt;br /&gt;
&amp;nbsp;- Behavior Diagram.&lt;br /&gt;
&amp;nbsp;- Use case diagram.&lt;br /&gt;
&amp;nbsp;- Sequence Diagram.&lt;br /&gt;
&amp;nbsp;- Collaboration Diagram.&lt;br /&gt;
&amp;nbsp;- Statechart Diagram.&lt;br /&gt;
&amp;nbsp;- Activity Diagram.&lt;/div&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.tutorialspoint.com/uml/uml_class_diagram.htm&quot;&gt;http://www.tutorialspoint.com/uml/uml_class_diagram.htm&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/7271985319494600593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/04/uml-class-diagram.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/7271985319494600593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/7271985319494600593'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/04/uml-class-diagram.html' title='UML - Class diagram.'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-5757037631668218835</id><published>2012-04-09T07:48:00.000+05:30</published><updated>2012-04-09T07:48:21.900+05:30</updated><title type='text'>ArrayList vs LinkedList</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Both&amp;nbsp;implements List interface.&lt;/h4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) ArrayList is implment re sizable array.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) LinkedList is implment doubly Linkedlist.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;Difference.&lt;/h4&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) Data structure of both is different.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) ArrayList - Getting and searching operation is fast(Getting from array index), Where remove opeation is too costly since it require rearrange all the index.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3) On linkedList we need to iterate through all elements, Does not provide random or indexed base access.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4) Insertion are very easy in Linkedlist since its not reuqire to rearranging an index.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5) Linkedlist is more over head then arraylist, Since the node have data and address of the next and previous data.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;When to use LinkedList:&lt;/h4&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Since application inserts or remove more than retrieval then Linkedlist&amp;nbsp; is better option.&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;If application can live with out random data access then Linkedlist is better option.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/5757037631668218835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/04/arraylist-vs-linkedlist.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/5757037631668218835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/5757037631668218835'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/04/arraylist-vs-linkedlist.html' title='ArrayList vs LinkedList'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-820733462114420109</id><published>2012-03-23T11:53:00.000+05:30</published><updated>2012-03-23T11:53:02.781+05:30</updated><title type='text'>difference  builder Vs decorator pattern</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;Builder&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sequence of steps to construct an object&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; -During creation.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; -Elements are must.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; -If its fails object incomplete.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Decorator pattern&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On constructed Object adding extra/more functionality.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -After object created.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; -Elements are optional.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; -It will not affect the basic behavior.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; -Allows new/additional behaviour to be added to an existing object dynamically.&amp;nbsp; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/820733462114420109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/03/difference-builder-vs-decorator-pattern.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/820733462114420109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/820733462114420109'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/03/difference-builder-vs-decorator-pattern.html' title='difference  builder Vs decorator pattern'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-2286945792209654137</id><published>2012-02-22T06:28:00.001+05:30</published><updated>2012-02-23T22:54:58.182+05:30</updated><title type='text'>Performance Improvement - Java</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;DURING DESIGN APPLICATION:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
1) &lt;b&gt;Excessive logging&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Use log into buffer and write at the end.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Use async logging for better performance.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Use framework like log4j, SLF4J.&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Don&#39;t use System.err, System.out - There is no way to turn it off.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
2) &lt;strong&gt;Incorrect application server configuration.&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Use appropiate heap size based on JVM.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Use proper thread pool, connection pool, connection time, child connection settings, logger levels, etc.&lt;br /&gt;
&lt;br /&gt;
3) &lt;strong&gt;Incorrect usage of Java EE&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
4) &lt;b&gt;Improper usage of caching.&lt;/b&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; What is the cache hit ratio?&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; How much memory the cache take?&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; How performance testing with respect to cache? Is it disabled?&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Can cache monitored / managed at run time? (No of objects in cache, hit ratio, amount of memory used, enable/disable cache, flushing the content, etc&lt;span style=&quot;font-size: xx-small;&quot;&gt;).&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Use cache if and only if caching is needed.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Verify the functional and performance behaviour of your cache with performance tests.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Make sure your cache can be managed and monitored at runtime.&lt;br /&gt;
&lt;br /&gt;
5) &lt;strong&gt;Excessive memory usage&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;6) &lt;/strong&gt;&lt;strong&gt;Badly performing libraries&amp;nbsp;&lt;/strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;without checking whether that library is really needed (and does not overlap with functionality already offered by other libraries used),&lt;/li&gt;
&lt;li&gt;without checking whether that library can offer good performance or whether a better performing alternative is available,&lt;/li&gt;
&lt;li&gt;without defining how the library is going to be used within the application.&lt;/li&gt;
&lt;/ul&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;DEPLOYMENT:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;strong&gt;Environment tunning&lt;/strong&gt;, Like tomcat tunning on Memory, thread, Time to live, etc.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Few other options you should be aware of during Environment tunning:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Add the -server option to the JVM options for Tomcat, which should result in better performance for server applications. Note that this option, in some cases, causes the JVM to crash for no apparent reason. If you face this problem, remove the option. &lt;/li&gt;
&lt;li&gt;Minimize logging in Tomcat by setting debug=&quot;0&quot; everywhere in &amp;lt;Tomcat&amp;gt;/conf/server.xml. &lt;/li&gt;
&lt;li&gt;Remove any unnecessary resources from the Tomcat configuration file. Some examples include the Tomcat examples Web application and extra &amp;lt;Connector&amp;gt;, &amp;lt;Listener&amp;gt; elements. &lt;/li&gt;
&lt;li&gt;Set the autodeploy attribute of the &amp;lt;Host&amp;gt; tag to false (unless you need any of the default Tomcat applications like Tomcat Manager). &lt;/li&gt;
&lt;li&gt;Make sure you have set reloadable=&quot;false&quot; for all your Web application contexts in &amp;lt;Tomcat&amp;gt;/conf/server.xml.&lt;/li&gt;
&lt;/ol&gt;&lt;strong&gt;Database tunning&lt;/strong&gt;. Size, ram, no of connection, etc. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Application tunning&lt;/strong&gt;, Like code optimization, SQL query optimization, Sql profiler, etc&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Avoid using synchronized block in the code.&lt;/li&gt;
&lt;li&gt;Classes, Methods, Variables&amp;nbsp;- where every possible use final variable.&lt;/li&gt;
&lt;li&gt;provide proper logging to&amp;nbsp;help dubugging.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/2286945792209654137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/performance-improvement-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/2286945792209654137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/2286945792209654137'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/performance-improvement-java.html' title='Performance Improvement - Java'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-6132117604040837722</id><published>2012-02-16T22:44:00.001+05:30</published><updated>2012-02-16T22:44:55.795+05:30</updated><title type='text'>Builder Vs Factory</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Builder&lt;/strong&gt; - Create another object of specific type over several steps.&lt;br /&gt;
&lt;strong&gt;Builder&lt;/strong&gt; - Holds the needed state for the target iteam at each step.&lt;br /&gt;
&lt;strong&gt;Example&lt;/strong&gt;: When you ask for Car it will give Hond with 4 Cylnder or Honda with 6 cylnder engine or Maruthi.&lt;br /&gt;
&lt;strong&gt;Example&lt;/strong&gt;: Make a loan object, There are several loans(education, personal, car, house) and intrest rates are different, So the final object is created with Step by step process. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;strong&gt;Factory&lt;/strong&gt; - Create another object of specify type in one step.&lt;br /&gt;
&lt;strong&gt;Example&lt;/strong&gt;: When you ask for Cat it will give Honda or Maruthi. &lt;br /&gt;
&lt;strong&gt;Example&lt;/strong&gt;: When there is a super class and &#39;N&#39; number of subclass, Depends on the parameter the object will create and return.&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/6132117604040837722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/builder-vs-factory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/6132117604040837722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/6132117604040837722'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/builder-vs-factory.html' title='Builder Vs Factory'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-3069050461604273925</id><published>2012-02-15T06:01:00.000+05:30</published><updated>2012-02-15T06:01:49.642+05:30</updated><title type='text'>List of Available Design Patterns - GOF.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Creational Design Pattern&lt;br /&gt;
1) Abstract Factory pattern&lt;br /&gt;
2) Builder pattern&lt;br /&gt;
3) Factory pattern&lt;br /&gt;
4) Prototype pattern&lt;br /&gt;
5) Singletone pattern&lt;br /&gt;
&lt;br /&gt;
Structural Design Pattern&lt;br /&gt;
1) Adapter&lt;br /&gt;
2) Bridge&lt;br /&gt;
3) Composite&lt;br /&gt;
4) Facade&lt;br /&gt;
5) Flyweight&lt;br /&gt;
6) Proxy&lt;br /&gt;
&lt;br /&gt;
Behaviroral Design Pattern&lt;br /&gt;
1) Chain of responsiblity&lt;br /&gt;
2) Composite&lt;br /&gt;
3) Interpretor&lt;br /&gt;
4) Iterator&lt;br /&gt;
5) Memento&amp;nbsp;&lt;br /&gt;
6) Observer&amp;nbsp;&lt;br /&gt;
7) State&amp;nbsp;&lt;br /&gt;
8) Strategy&amp;nbsp;&lt;br /&gt;
9) Template Method&amp;nbsp;&lt;br /&gt;
10) Visitor&amp;nbsp; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/3069050461604273925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/list-of-available-design-patterns-gof.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/3069050461604273925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/3069050461604273925'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/list-of-available-design-patterns-gof.html' title='List of Available Design Patterns - GOF.'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-6776873644159215174</id><published>2012-02-13T09:02:00.000+05:30</published><updated>2012-02-13T09:02:31.209+05:30</updated><title type='text'>SOA and ESB</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;strong&gt;SOA&lt;/strong&gt; is an architectural model for implementing loosely coupled service based applications. ESB is a piece of infrastructure software that helps developers to develop services, and communicate between services through suitable APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;SOA&lt;/strong&gt; Service should be &lt;strong&gt;stateless&lt;/strong&gt;. It may have a context within its stateless execution, but it will not have an intermediary state waiting for an event or a call-back. The retention of state-related data must not extend beyond a request/response on a service. Because state management consumes a lot of resources, and this can affect the scalability and availability that are required for a reusable service.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Pitfalls of SOA&lt;/strong&gt;; &lt;span style=&quot;font-family: Times New Roman; font-size: small;&quot;&gt;One of the most common pitfalls is to view SOA as an end, rather than a means to an end. Developers who focus on building an SOA solution rather than solving a specific business problem are more likely to create complex, unmanageable, and unnecessary interconnections between IT resources.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Times New Roman; font-size: small;&quot;&gt;Another common pitfall is to try to solve multiple problems at once, rather than solving small pieces of the problem. Taking a top-down approach—starting with major organization-wide infrastructure investments—often fails either to show results in a relevant timeframe or to offer a compelling return on investment. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;ESB&lt;/strong&gt; can be used as a platform on which SOA is realized. ESB is only the medium through which the services flow. ESB provides facilities for the composition and deployment of services, which in turn implement the SOA. Also ESB provide &quot;Any to Any&quot; connectivity between the services with in application. &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/6776873644159215174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2011/09/soa-and-esb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/6776873644159215174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/6776873644159215174'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2011/09/soa-and-esb.html' title='SOA and ESB'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-3107163750277352202</id><published>2012-02-08T08:06:00.000+05:30</published><updated>2012-02-08T08:06:25.881+05:30</updated><title type='text'>Decorator Design Pattern</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Type of Structural Pattern:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Purpose&lt;/strong&gt;: Add additional responsibilities dynamically to an object.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Adapter Vs Decorator&lt;/strong&gt;: Adapter changes the object interface it self, But the decorator does not change the object it will add aditional responsiblity to it.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Key:&lt;/strong&gt; &lt;br /&gt;
1) Decoration adds functionality to objects at runtime which would make debugging system functionality harder.&lt;br /&gt;
2) Decoration it is also possible to remove the added functionalities dynamically.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/3107163750277352202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/decorator-design-pattern.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/3107163750277352202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/3107163750277352202'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/decorator-design-pattern.html' title='Decorator Design Pattern'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-2119777984427468781</id><published>2012-02-08T07:48:00.000+05:30</published><updated>2012-02-08T07:48:49.966+05:30</updated><title type='text'>Software Design Principles</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;3 important characteristics of a bad design that should be avoided:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Rigidity - It is hard to change because every change affects too many other parts of the system.&lt;/li&gt;
&lt;li&gt;Fragility - When you make a change, unexpected parts of the system break.&lt;/li&gt;
&lt;li&gt;Immobility - It is hard to reuse in another application because it cannot be disentangled from the current applications.&lt;/li&gt;
&lt;/ol&gt;&lt;strong&gt;Open Close Principle&lt;/strong&gt;:&lt;br /&gt;
Open for extension and close for modification.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Interface Segregation Principle&lt;/strong&gt;:&lt;br /&gt;
Clients should not be forced to depend upon interfaces that they don&#39;t use.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Single Responsibility Principle&lt;/strong&gt;:&lt;br /&gt;
A class should have only one reason to change.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Liskov&#39;s Substitution Principle&lt;/strong&gt;:&lt;br /&gt;
Derived types must be completely substitutable for their base types.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/2119777984427468781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/software-design-principles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/2119777984427468781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/2119777984427468781'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/software-design-principles.html' title='Software Design Principles'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-1767852993978826494</id><published>2012-02-07T18:09:00.002+05:30</published><updated>2012-02-16T22:42:31.502+05:30</updated><title type='text'>Factory Design Pattern</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Type of &lt;b&gt;Creational DP&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Singleton Vs Factory.&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Singleton always returns you a same object, But factory returns to a new and requested/difference objects.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;key-point&lt;/strong&gt;:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; creates objects without exposing the instantiation logic to the client.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; refers to the newly created object through a common interface&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;How it works:&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) Client need a object, Instand of creating using new operator it will ask factory object to give a new Object, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) The factory instantiates a new concrete product and then returns to the client the newly created product.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3) Client uses the products as abstract products without being aware about their concrete implementation&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/1767852993978826494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/factory-design-pattern.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/1767852993978826494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/1767852993978826494'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/factory-design-pattern.html' title='Factory Design Pattern'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-1683589702127874402</id><published>2012-02-07T17:51:00.000+05:30</published><updated>2012-02-07T17:51:22.760+05:30</updated><title type='text'>Observer Design Pattern.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Observer Design Pattern&lt;/b&gt; used whenever a subject changes has to be observed by one or more observers.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Example domain&lt;/b&gt; usages: Stocks, Weather reports, News providers and Score providers, etc.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; &lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;loosely coupling:&lt;/b&gt; Change of a state in one object must be reflected in another object without keeping the objects tight coupled.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Key problems&lt;/b&gt;:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;ol style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Many Observers to Many Observables.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt; We can have either push or pull method data transfers.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;When many Onververs and Observables comes we may need to introuduce new logic object responsible(ChangeManager)&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Encapsulate the logic of notify the observers&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Maintain the many to many relations&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Receive the notifications from subjects and delegate them to the observers&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/ol&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Factory, Mediator and Template pattern can be used with in this design patterns. &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/1683589702127874402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/observer-design-pattern.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/1683589702127874402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/1683589702127874402'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/observer-design-pattern.html' title='Observer Design Pattern.'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-8629914696423324963</id><published>2012-02-06T22:16:00.004+05:30</published><updated>2012-04-09T10:47:32.750+05:30</updated><title type='text'>Singleton Design Pattern.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;strong&gt;When to use Singleton&lt;/strong&gt;: Singleton is used there must be one instance of the class. And it must be accessable to clients from global point.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Example usage of Singleton&lt;/strong&gt;: Logger object, Configuration object, Cache object, Properties Object, Factory methods are used Single ton, etc..&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Problems of singleton:&amp;nbsp;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) Multi-thread safe. ( method level it self)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2) Lazy installation using double&amp;nbsp; locking machanism, (Synchronized inside the getInstalnce() method)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3) Early installtion method.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4) Serialization. (serializable(), readResolve())&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/8629914696423324963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/singleton-design-pattern.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/8629914696423324963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/8629914696423324963'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/singleton-design-pattern.html' title='Singleton Design Pattern.'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-8985529395945170982</id><published>2012-02-05T21:41:00.000+05:30</published><updated>2012-02-05T21:41:56.331+05:30</updated><title type='text'>Why Tomcat 7?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Apache Tomcat version 7.0 implements the Servlet 3.0 and JavaServer Pages 2.2 Specification. &lt;br /&gt;
&lt;strong&gt;Tomcat 7&lt;/strong&gt;:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) Application memory leave and prevention.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) Support for external content directly into web application.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3) lot of code cleanup for connectors and lifecycle.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4) Full support of Java Servlet Specification 3.0.|&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5) Simplified embedding. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Tips&lt;/strong&gt; for using tomcat:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) Use Shared library concepts. &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) Custom error pages.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3) Tweak memory settings.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4) Use IP/Hostname filters to allow subset machines to connect.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5) Secure directory listing.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6) Use GZip compression. &lt;br /&gt;
&lt;strong&gt;Tomcat supports&lt;/strong&gt;:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) SSL.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) Proxy support.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3) Load Balancer.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4) Virtual Hosting.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5) Logging.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6) SSI, CGI.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7) Embedded Tomcat.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/8985529395945170982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/why-tomcat-7.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/8985529395945170982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/8985529395945170982'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/why-tomcat-7.html' title='Why Tomcat 7?'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-4812306221326888814</id><published>2012-02-02T21:28:00.001+05:30</published><updated>2012-02-02T21:30:41.178+05:30</updated><title type='text'>REST Vs Soap</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0in 0in 0pt;&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;strong&gt;REST&lt;/strong&gt;: Representational state transfer, It’s an architecture.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0in 0in 0pt;&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REST architectures consist of &lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Client_(computing)&quot; title=&quot;Client (computing)&quot;&gt;&lt;span style=&quot;color: blue; font-family: inherit;&quot;&gt;clients&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; and &lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Server_(computing)&quot; title=&quot;Server (computing)&quot;&gt;&lt;span style=&quot;color: blue; font-family: inherit;&quot;&gt;servers&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;. Clients initiate requests to servers; servers process requests and return appropriate responses. Requests and responses are built around the transfer of representations of resources&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0in 0in 0pt;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: inherit; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REST architecture work with Http protocol, so it’s purely stateless, &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0in 0in 0pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Client request can catch the responses to improve the performances,&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0in 0in 0pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; It’s a layered architecture; we can improve the system by enabling load-balancer, cache server, etc.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0in 0in 0pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; It provides / designed for uniform interface.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0in 0in 0pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REST: bandwidth usage is lighter.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0in 0in 0pt;&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;strong&gt;SOAP&lt;/strong&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0in 0in 0pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; It’s a an protocol,&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0in 0in 0pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; It can run on Http, Jms, Ftp, SMTP protocols.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0in 0in 0pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This supports Transaction, security, etc But REST users to build&amp;nbsp;this custom plumbing,&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0in 0in 0pt;&quot;&gt;&lt;span style=&quot;font-family: inherit; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0in 0in 0pt;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/4812306221326888814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/rest-vs-soap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/4812306221326888814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/4812306221326888814'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/02/rest-vs-soap.html' title='REST Vs Soap'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-1896458501300870190</id><published>2012-01-30T17:27:00.000+05:30</published><updated>2012-01-30T17:27:59.946+05:30</updated><title type='text'>IaaS vs. PaaS vs. SaaS</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;SaaS:&lt;/b&gt;&lt;br /&gt;
Software as a Services. Essentially based on the concept of renting application functionality  from a service provider rather than buying, installing and running  software yourself. delivering the equivalent of a complete  application suite.&lt;br /&gt;
Some time we call it as &quot;&lt;b&gt;Storage as a Services&quot;.&amp;nbsp; &lt;/b&gt;Some time called as &quot;&lt;b&gt;on-demand software&lt;/b&gt;&quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;PaaS:&lt;/b&gt;&lt;br /&gt;
Platform as a Services.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;IaaS:&lt;/b&gt;&lt;br /&gt;
Infrastructure as a service.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/1896458501300870190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/01/iaas-vs-paas-vs-saas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/1896458501300870190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/1896458501300870190'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/01/iaas-vs-paas-vs-saas.html' title='IaaS vs. PaaS vs. SaaS'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-1862100811061128962</id><published>2012-01-30T16:11:00.000+05:30</published><updated>2012-01-30T16:11:46.153+05:30</updated><title type='text'>Why we need Solr then Lucene?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;Lucene:&lt;/b&gt; &lt;br /&gt;
Apache Lucene is a high-performance, full-featured text search engine  library written entirely in Java. It is a technology suitable for nearly  any application that requires full-text search&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Solr&lt;/b&gt;:&lt;br /&gt;
Solr is an open source enterprise search server based on the Lucene Java  search library, Its a extended version of Lucene with XML/HTTP and JSON APIs, hit highlighting, faceted  search, caching, replication, a web administration interface, SolrJ, Configurable output format., etc. &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/1862100811061128962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2012/01/why-we-need-solr-then-lucene.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/1862100811061128962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/1862100811061128962'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2012/01/why-we-need-solr-then-lucene.html' title='Why we need Solr then Lucene?'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7934453668602431995.post-4492101392309385400</id><published>2011-10-19T20:24:00.002+05:30</published><updated>2011-10-19T20:24:34.840+05:30</updated><title type='text'>What is Web 2.0?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Web 2.0 is to describe a second generation of the World Wide Web that is focused on the ability for people to collaborate and share information online. Web 2.0 basically refers to the transition from static HTML Web pages to a more dynamic Web that is more organized and is based on serving Web applications to users. &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmkalidoss.blogspot.com/feeds/4492101392309385400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mmkalidoss.blogspot.com/2011/10/what-is-web-20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/4492101392309385400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7934453668602431995/posts/default/4492101392309385400'/><link rel='alternate' type='text/html' href='http://mmkalidoss.blogspot.com/2011/10/what-is-web-20.html' title='What is Web 2.0?'/><author><name>Kalidoss</name><uri>http://www.blogger.com/profile/00987867665724049294</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgG-_3MBj3AvROWFv0yahBkBtBE3_yQmHOoTA4xrAbzKAcpaU9zG02IiimZKKq1ZKqMXbNvCWLlXKV6J_oIaiwzz1K7ixPXVrkUA6V_pcBlxGjATnTxWk1awLDOGW5Uc/s220/IMG362.jpg'/></author><thr:total>0</thr:total></entry></feed>