tag:blogger.com,1999:blog-22120460571630676172024-03-15T00:19:21.502+05:30hareenlakssharing knowledge and experiencesHareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.comBlogger46125tag:blogger.com,1999:blog-2212046057163067617.post-75639217947606267972017-07-28T10:03:00.001+05:302020-07-08T23:08:24.903+05:30I wanna give you a gift - a series of gifts<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://www.amazon.com/gp/product/B004CQ3HVM/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B004CQ3HVM&linkCode=as2&tag=hareenlaks-20&linkId=96e6c61f6ae1173df570b0aae9bb8ce2" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"><img border="0" src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=US&ASIN=B004CQ3HVM&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL250_&tag=hareenlaks-20" /></a><img alt="" border="0" height="1" src="//ir-na.amazon-adsystem.com/e/ir?t=hareenlaks-20&l=am2&o=1&a=B004CQ3HVM" style="border: none !important; margin: 0px !important;" width="1" /><br />
<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; white-space: pre-wrap;">“I wanna give you a gift - a series of gifts, leading up to... well, I wanna call it "the ultimate gift;" but, you fail in any way, it's over.”</span>
<br />
<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "times new roman"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dear friends, How would you feel if you had a billionaire grandpa or billionaire dad? Especially, how would you feel if he was going to give you whole bunch of money after his death? What would happen if he already deceased after made you as his successor? You may feel sad but that sadness comes with a fortune. You would be a billionaire.</span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "times new roman"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">When Red Stevens dies members of his family feel more or less like you. Even though It doesn't reflect any sadness about Red, everybody are curious about what Mr. Stevens kept for them through his last will. Jason Stevens, beloved grandson of Red, comes to funeral with his girlfriends. No sad at all. He lived all his life with a trust fund and never did a job and want to continue his lifestyle forever.</span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "times new roman"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">After the solemn funeral of Red, his wealthy family get together around the office table of old </span><span style="background-color: white; color: #252525; font-family: "arial"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Mr. Hamilton, the family lawyer. Dissatisfaction goes around everywhere. Everyone leave with dissatisfaction about what they have gotten. Except Jason who still doesn’t know what he will have. He sits there without sense. </span></div>
<br />
<div style="text-align: justify;">
<span style="color: #252525; font-family: arial; font-size: 14px; white-space: pre-wrap;"><br /></span></div>
<span style="background-color: white; color: red; font-family: "arial"; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><div style="text-align: justify;">
<span style="color: red; font-family: "arial"; font-size: 10.5pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">Spoiler alert: </span><span style="color: #252525; font-family: "arial"; font-size: 10.5pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">If you want to see the movie with curiosity just go and watch before reading beyond this. </span></div>
</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "times new roman"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Finally, it’s Jason’s time. Jason and Hamilton appear in a room without anyone but themselves. There is a magic box appears middle of the table. Then deceased Red speaks “I wanna give you a gift - a series of gifts, leading up to... well, I wanna call it "the ultimate gift;" but, you fail in any way, it's over.” It’s recorded speech of Red before his death. Now Jason starts his journey to find his gift, literally series of gifts.</span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "times new roman"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6jrJ_7Bg1ZDrrM4zA81XbqtnhXtOr0UNAamGvcHwFeP-thgZv7mTdLjKWBrIX74BoMcPgjQN3oRAZnu3cNJJuVa1qnlcJS0-cuS4jbtVJCgIVIU7CnEQpiYzHYz-brTNLCSs07IhTAqOF/s1600/0567b94ea0841497b0598fe173f94904.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1600" data-original-width="1067" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6jrJ_7Bg1ZDrrM4zA81XbqtnhXtOr0UNAamGvcHwFeP-thgZv7mTdLjKWBrIX74BoMcPgjQN3oRAZnu3cNJJuVa1qnlcJS0-cuS4jbtVJCgIVIU7CnEQpiYzHYz-brTNLCSs07IhTAqOF/s320/0567b94ea0841497b0598fe173f94904.jpg" style="cursor: move;" width="213" /></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br />
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: 11pt;">Dear friends, I detailed you beginning of one of my favorite movies, </span><a href="https://www.amazon.com/gp/product/B004CQ3HVM/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B004CQ3HVM&linkCode=as2&tag=hareenlaks-20&linkId=94d3e353ac210613ed1946b7775b120b" style="font-size: 11pt;" target="_blank">The Ultimate Gift</a><img alt="" border="0" height="1" src="//ir-na.amazon-adsystem.com/e/ir?t=hareenlaks-20&l=am2&o=1&a=B004CQ3HVM" style="border: none; font-size: 11pt; margin: 0px;" width="1" /><span style="font-size: 11pt;">. It was directed by Michael O. Sajbel based on Jim Stovall’s novel '</span><a href="https://www.amazon.com/gp/product/0781445639/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0781445639&linkCode=as2&tag=hareenlaks-20&linkId=3b459a6c28b4fe77bbe239847b56b74a" style="font-size: 11pt;" target="_blank">The Ultimate Gift</a><img alt="" border="0" height="1" src="//ir-na.amazon-adsystem.com/e/ir?t=hareenlaks-20&l=am2&o=1&a=0781445639" style="border: none; font-size: 11pt; margin: 0px;" width="1" /><span style="font-size: 11pt;">'. Such a nice movie I have ever seen. It shows us the value of experienced life rather than billion dollars. As I mentioned before, plot goes around rich grandfather who doesn’t like to give his money to hands with unlifted fingers or to a person who doesn’t know value of money, amount of tears and sweats spent to earn. Throughout the plot grandfather empowers his grandson to be experienced enough to bear billions of dollars.</span></span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "times new roman"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">These experiences shows as series of gifts, series of twelve gifts which lead to ultimate gift. The gift of work, the gift of money, the gift of friends, the gift of learning, the gift of problems, the gift of family, the gift of laughter, the gift of dreams, the gift of giving, the gift of gratitude, the gift of a day, the gift of love all are gifts he received.</span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "times new roman"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">He, Jason, flied to rural Texas to collect something he don’t know. Lazy boy who not lift a finger had to woke up early in the morning to work hard in a field of Texas. He had to work under hot sun. After some time he came back with nothing, but with the gift of work.</span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "times new roman"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">He found one true friend. He survived from zero money condition. He helped to others. He learned to help others. Finally, he got his fortune with a bunch of life values.</span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">My dear friends, did he acquire billions of dollars only, didn’t he? No. He acquired billions of dollars with a new life. A better life. That’s the ultimate gift.</span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
</div>
</div>
</div>
</div>
</div>
Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com16tag:blogger.com,1999:blog-2212046057163067617.post-50976559327291015492014-10-10T17:21:00.002+05:302014-10-10T17:21:33.441+05:30Solution for fillData->clip->clipRect.isEmpty() in Qt<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
After long time I'm going to write another blog post. This is regarding the Qt and it will detail a solution for the problem of fillData->clip->clipRect.isEmpty(). I got this problem as below cage while trying to create a 'title block' for the engineering drawing.
<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_rgl8ywdqEGd33WwNnR2XJMFgAzlJ_m23BrmxBvVfmdZx45F9tev2rfJ9BThUpbeUdNieB67qlpsqz3SpxhneaOU9uzPFRVucOwmSTjUSKTF7mNlsoKxAOKO9blg2K7QSLm7zLl88fP-C/s1600/title_block.gif" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_rgl8ywdqEGd33WwNnR2XJMFgAzlJ_m23BrmxBvVfmdZx45F9tev2rfJ9BThUpbeUdNieB67qlpsqz3SpxhneaOU9uzPFRVucOwmSTjUSKTF7mNlsoKxAOKO9blg2K7QSLm7zLl88fP-C/s1600/title_block.gif" height="100" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sample title block (<a href="https://www.google.lk/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=cmYWri2-EYVZ8M&tbnid=ekM5WNnNFXqOrM:&ved=0CAMQjxw&url=http%3A%2F%2Fwww.roymech.co.uk%2FUseful_Tables%2FDrawing%2FTitle_blocks.html&ei=qMc3VLPRCI-2uATviIH4DA&bvm=bv.77161500,d.c2E&psig=AFQjCNGwFy5CJCXYWHN8-hqZVJ-KL8OQ6g&ust=1413028131125196">copy rights</a>)</td></tr>
</tbody></table>
I created a QPrintPreviewDialog which previews engineering drawings generated by the application. I draw rectangle to represent title block which consists details of the drawing. At some points length of the detail higher than the space of the rectangle. Then I got below run-time error.<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code style="color: black; word-wrap: normal;">
<span style="color: #7f7f7f; font-family: 'Courier'; font-size: 10pt;">ASSERT: "!fillData->clip->clipRect.isEmpty()" in file painting/qpaintengine_raster.cpp, line 4435</span></code></pre>
<br />
<b>The simple answer is you are going to write the text in the rectangle which is not have enough space to show your content.</b><br />
<br />
You can do following things.<br />
1. Increase the size of Rectangle.<br />
2. Decrease the font size.<br />
3. Or use <a href="https://blogao.googlecode.com/hg/lib/qtjambi-win32-lgpl-4.5.2_01/doc/html/com/trolltech/qt/core/Qt.TextElideMode.html">Qt.TextElideMode</a><br />
<h3 class="fn" style="background-color: yellow; border-bottom-color: rgb(230, 230, 230); border-bottom-left-radius: 7px 7px; border-bottom-right-radius: 7px 7px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(230, 230, 230); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(230, 230, 230); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(230, 230, 230); border-top-left-radius: 7px 7px; border-top-right-radius: 7px 7px; border-top-style: solid; border-top-width: 1px; font-size: 14px; font-weight: bold; font: normal normal 500 14px/1.2 Arial; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 30px; max-width: 75%; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-decoration: none; word-spacing: 3px;">
enum Qt::<span class="name" style="color: #1a1a1a; font-weight: 100; max-width: 75%;">TextElideMode</span></h3>
This enum specifies where the ellipsis should appear when displaying texts that don't fit:<br />
<span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; font-family: Arial;"></span><br />
<table class="valuelist" style="background-color: #f6f6f6; border-bottom-color: rgb(230, 230, 230); border-bottom-left-radius: 7px 7px; border-bottom-right-radius: 7px 7px; border-bottom-style: solid; border-bottom-width: 1px; border-collapse: separate; border-left-color: rgb(230, 230, 230); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(230, 230, 230); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(230, 230, 230); border-top-left-radius: 7px 7px; border-top-right-radius: 7px 7px; border-top-style: solid; border-top-width: 1px; font-size: 12px; line-height: 1.2; margin-bottom: 25px; margin-left: 15px;"><tbody>
<tr class="odd" style="background-color: #f6f6f6; color: #66666e;" valign="top"><th class="tblConst" style="padding-left: 20px; text-align: left;">Constant</th><th class="tblval" style="padding-left: 20px; text-align: left;">Value</th><th class="tbldscr" style="padding-left: 20px; text-align: left;">Description</th></tr>
<tr><td class="topAlign" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 1px; padding-bottom: 3px; padding-left: 20px; padding-right: 15px; padding-top: 3px;"><tt style="text-align: left;">Qt::ElideLeft</tt></td><td class="topAlign" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 1px; padding-bottom: 3px; padding-left: 20px; padding-right: 15px; padding-top: 3px;"><tt style="text-align: left;">0</tt></td><td class="topAlign" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 1px; padding-bottom: 3px; padding-left: 20px; padding-right: 15px; padding-top: 3px;">The ellipsis should appear at the beginning of the text.</td></tr>
<tr><td class="topAlign" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 1px; padding-bottom: 3px; padding-left: 20px; padding-right: 15px; padding-top: 3px;"><tt style="text-align: left;">Qt::ElideRight</tt></td><td class="topAlign" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 1px; padding-bottom: 3px; padding-left: 20px; padding-right: 15px; padding-top: 3px;"><tt style="text-align: left;">1</tt></td><td class="topAlign" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 1px; padding-bottom: 3px; padding-left: 20px; padding-right: 15px; padding-top: 3px;">The ellipsis should appear at the end of the text.</td></tr>
<tr><td class="topAlign" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 1px; padding-bottom: 3px; padding-left: 20px; padding-right: 15px; padding-top: 3px;"><tt style="text-align: left;">Qt::ElideMiddle</tt></td><td class="topAlign" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 1px; padding-bottom: 3px; padding-left: 20px; padding-right: 15px; padding-top: 3px;"><tt style="text-align: left;">2</tt></td><td class="topAlign" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 1px; padding-bottom: 3px; padding-left: 20px; padding-right: 15px; padding-top: 3px;">The ellipsis should appear in the middle of the text.</td></tr>
<tr><td class="topAlign" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 1px; padding-bottom: 3px; padding-left: 20px; padding-right: 15px; padding-top: 3px;"><tt style="text-align: left;">Qt::ElideNone</tt></td><td class="topAlign" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 1px; padding-bottom: 3px; padding-left: 20px; padding-right: 15px; padding-top: 3px;"><tt style="text-align: left;">3</tt></td><td class="topAlign" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 1px; padding-bottom: 3px; padding-left: 20px; padding-right: 15px; padding-top: 3px;">Ellipsis should NOT appear in the text.</td></tr>
</tbody></table>
<br />
<pre></pre>
<pre></pre>
<pre></pre>
</div>
</div>
Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com7tag:blogger.com,1999:blog-2212046057163067617.post-9356870176348415632014-05-06T09:21:00.002+05:302014-05-06T09:23:14.281+05:30ASSERT: "uint(i) < uint(size())" in file bla.. bla.., line bla.. in Qt<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
Hope you know these days I'm trying Qt\C++. Today I spent lot of my valuable time for solve the error mentioned in the title (ASSERT: "uint(i) < uint(size())" in file bla.. bla.., line bla..). It is run time error and I tried lot to find what was happening. At that time I have no knowledge about the 'Q_ASSERT' also.<br />
<br />
A one bug hidden inside below code. Can you find it?</div>
<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code style="color: black; word-wrap: normal;">
for (int row = 0; row < heights().count(); ++row)
{
for (int col = 0; col < ampererates().count(); ++col)
{
QModelIndex index = item_model->index(row,col,QModelIndex());
no_of_components = item_model->data(index).toString();
if(no_of_components.toInt()>0)
{
height = heights().at(row);
ampererates = ampererates.at(col);
item_details.clear();
item_details.append(QString::number(selected_width));
item_details.append(height);
item_details.append(amperate);
item_details.append(no_of_components);
selected_components.append(item_details);
}
}
}</code></pre>
<br />
I know it is very difficult to found a bug without the whole story. But I'm writing this post to anyone who got the same problem as a beginner like me and detail about my thinking pattern.<br />
<br />
As a first step I put qDebug() s intermediate of the lines. And I found the bug in below line.<br />
<span style="background-color: #eeeeee; font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px;"> ampererates = ampererates.at(col); </span><br />
<br />
Then I thought what type of error it was. It mentioned something about sizes. <i>Sizes?? something about arrays or List..?? </i>Then I thought if there is no error in <i>count()</i> of the same list. Why it was informing error like out of bound?<br />
<span style="background-color: #eeeeee; font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px;"> for (int col = 0; col < ampererates().count(); ++col)</span> Working fine.<br />
<span style="background-color: #eeeeee; font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px;"> ampererates = ampererates.at(col); ++col)</span> Not working <br />
<br />
Variable <span style="background-color: #eeeeee; font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px;">ampererates</span><i> </i>is QString. And <span style="background-color: #eeeeee; font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px;">ampererates()</span> is QStringList. <i>Ohh.. Shit.. I missed the brackets.</i> Solution founded. I was trying to read a char from QString instead of read string from QStringList. There is no guarantee that index position is valid. <br />
<br />
Then I checked what <i>.at() </i>doing in different classes. As mentioned in there class references.<br />
<h3 class="fn" style="background-color: #f6f6f6; border-bottom-left-radius: 7px; border-bottom-right-radius: 7px; border-top-left-radius: 7px; border-top-right-radius: 7px; border: 1px solid rgb(230, 230, 230); box-sizing: border-box; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 16px; line-height: 1.2; margin: 20px 0px 0px; padding: 5px 5px 5px 10px; word-spacing: 3px;">
const <span class="type" style="margin: 0px; padding: 0px;"><a href="http://qt-project.org/doc/qt-4.8/qchar.html" style="color: #0f5300; margin: 0px; padding: 0px; text-decoration: none;">QChar</a></span> QString::<span class="name" style="color: black; margin: 0px; padding: 0px;">at</span> ( <span class="type" style="margin: 0px; padding: 0px;">int</span> <i style="margin: 0px; padding: 0px;">position</i> ) const</h3>
<div style="background-color: white; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px; padding: 5px 0px;">
Returns the character at the given index <i style="margin: 0px; padding: 0px;">position</i> in the string.</div>
<span style="background-color: white; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px;">The</span><span style="background-color: white; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px;"> </span><i style="color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px; margin: 0px; padding: 0px;">position</i><span style="background-color: white; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px;"> </span><span style="background-color: white; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px;">must be a valid index position in the string (i.e., 0 <=</span><span style="background-color: white; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px;"> </span><i style="color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px; margin: 0px; padding: 0px;">position</i><span style="background-color: white; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px;"> </span><span style="background-color: white; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px;"><</span><span style="background-color: white; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px;"> </span><a href="http://qt-project.org/doc/qt-4.8/qstring.html#size" style="color: #00732f; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px; margin: 0px; padding: 0px; text-decoration: none;">size</a><span style="background-color: white; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px;">()).</span><br />
<br />
<h3 class="fn" style="background-color: #f6f6f6; border-bottom-left-radius: 7px; border-bottom-right-radius: 7px; border-top-left-radius: 7px; border-top-right-radius: 7px; border: 1px solid rgb(230, 230, 230); box-sizing: border-box; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 16px; line-height: 1.2; margin: 20px 0px 0px; padding: 5px 5px 5px 10px; word-spacing: 3px;">
const <span class="type" style="margin: 0px; padding: 0px;">T</span> & QList::<span class="name" style="color: black; margin: 0px; padding: 0px;">at</span> ( <span class="type" style="margin: 0px; padding: 0px;">int</span> <i style="margin: 0px; padding: 0px;">i</i> ) const</h3>
<div style="background-color: white; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px; padding: 5px 0px;">
Returns the item at index position <i style="margin: 0px; padding: 0px;">i</i> in the list. <i style="margin: 0px; padding: 0px;">i</i> must be a valid index position in the list (i.e., 0 <= <i style="margin: 0px; padding: 0px;">i</i> < <a href="http://qt-project.org/doc/qt-4.8/qlist.html#size" style="color: #00732f; margin: 0px; padding: 0px; text-decoration: none;">size</a>()).</div>
<span style="background-color: white; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px;">This function is very fast (</span><a href="http://qt-project.org/doc/qt-4.8/containers.html#constant-time" style="color: #00732f; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px; margin: 0px; padding: 0px; text-decoration: none;">constant time</a><span style="background-color: white; color: #363534; font-family: 'Open Sans', sans-serif; font-size: 13px; line-height: 20px;">).</span><br />
<br />
QStringList inhereted from QList.<br />
<br />
OK. Thinks this is help somebody to solve same issue. I'm going to learn further what 'Q_ASSERT' do.<br />
<br />
Thanks for reading. Have a nice day.</div>
Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com8tag:blogger.com,1999:blog-2212046057163067617.post-33458618797522072012013-11-20T11:14:00.000+05:302013-11-20T11:14:14.121+05:30d-pointer in Qt<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGOggBznz396x45oMKGeJN77ysZz3g9DROhT3-V3thxLTlOK19t5F-wyoKs0KtcNo61lgrkyCx7qBrmkkQgDpwI_yGdW9NEpid67VJ-zi6rglo3FeILH-Wfoz3EI3Scb5QTCWKrDeQ6kt1/s1600/download.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGOggBznz396x45oMKGeJN77ysZz3g9DROhT3-V3thxLTlOK19t5F-wyoKs0KtcNo61lgrkyCx7qBrmkkQgDpwI_yGdW9NEpid67VJ-zi6rglo3FeILH-Wfoz3EI3Scb5QTCWKrDeQ6kt1/s200/download.jpg" width="168" /></a></div>
My dear friends, How are you? Nice to see you after such a long time. Nowadays I'm slightly moving to the Qt and hope to publish posts about it. So let's move to the post. Actually This is warm-up post ;)<br />
<br />
D-pointer or opaque pointer technique can be called as a design pattern. According to the Wikipedia this technique same as Bridge pattern and sometimes referred to as handle classes, the Pimpl idiom, Compiler firewall idiom or Cheshire Cat.<br />
<br />
With d-pointer programmers gain some advantages.<br />
<br />
1. Can be created simple interfaces.<br />
2. Hide the implementation details of an interface from ordinary clients.<br />
3. Provide <a href="http://en.wikipedia.org/wiki/Binary_code_compatibility">binary code compatibility</a> with different versions of a shared library.<br />
<br />
You can implement d-pointer as this.<br />
<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"> <code style="color: black; word-wrap: normal;">
// MyClass.h</code></pre>
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code style="color: black; word-wrap: normal;">
class MyClass
{
public:
MyClass();
~MyClass();
// implementation methods
private:
class MyClassPrivate *d;
};</code></pre>
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code style="color: black; word-wrap: normal;">
// MyClass.cpp
class MyClassPrivate
{
int x;
};</code></pre>
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code style="color: black; word-wrap: normal;">
MyClass::MyClass()
: d(*new MyClassPrivate)
{
}</code></pre>
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code style="color: black; word-wrap: normal;">
MyClass::~MyClass()
{
delete d;
} </code>
</pre>
<br />
<b>References</b><br />
<b><br /></b>
<a href="http://qt-project.org/wiki/Dpointer">http://qt-project.org/wiki/Dpointer</a><br />
<br /></div>
Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com1tag:blogger.com,1999:blog-2212046057163067617.post-33720880367532880192011-10-26T10:37:00.003+05:302011-12-26T17:43:19.615+05:30How to identify frequent patterns from FP tree<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
Before reading this post it is valuable for reading <a href="http://hareenlaks.blogspot.com/2011/06/fp-tree-example-how-to-identify.html">my previous post about FP tree.</a> In that post I mentioned how to draw a FP tree using a given database table. If you already know how to draw a FP tree it's OK.<br />
<br />
<a name='more'></a><br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDT6DFtWF1ZNtbKiJCGSwv3s5Xg3jYY8V0D64SETnk1xCJ0AkXwAbjmTXmzUx2KtKCqbfaAaF3RdL61KZAMlrRIG7I4Tc6-r43_ldk7-M30mSj7B0PKzllmmUfSRVP92ZyHY_usweB4ppR/s1600/FP+tree.JPG" imageanchor="1"><br />
</a></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxX0aLE1tNHBr6kqaX64qnTSZ80VQj_I6Nd4qf4b6L1mcGFPJrICXip-NwtlIGuaOiwAWo1FvPqat07SiSGva7nUjR0pxJt9jKor3RtyJfXiJ8DPrkrtMIe3N49jBlvpywGXZtpJ3AP5oC/s1600/FP+tree.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxX0aLE1tNHBr6kqaX64qnTSZ80VQj_I6Nd4qf4b6L1mcGFPJrICXip-NwtlIGuaOiwAWo1FvPqat07SiSGva7nUjR0pxJt9jKor3RtyJfXiJ8DPrkrtMIe3N49jBlvpywGXZtpJ3AP5oC/s1600/FP+tree.JPG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 1</td></tr>
</tbody></table>
In that post we got the final output(Fp tree) as displays in Figure 1. And I think you remember that the <b>Minimum support count is 3</b>.<br />
<br />
Let's find the Frequent Patterns(FPs) from FP tree.<br />
<br />
The Items of the DB and there frequency of occurrences can be listed as<br />
<b>B:6</b><br />
<b>D:6</b><br />
<b>A:5</b><br />
<b>E:4</b><br />
<b>C:3</b><br />
<br />
Note that the order of the list defined according to the priorities given in the Table2 of <a href="http://hareenlaks.blogspot.com/2011/06/fp-tree-example-how-to-identify.html">previous post</a>. To observe the FPs we have to go through bottom to top, from C to B. <br />
<br />
<u><b>C</b></u><br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4iJyn64GUl1HMRrmAR0X6wG-BNz26B2R59WKS6x6mPzpsFmEzrNIW4MwqBOBhgG_fTO7I6GRStJMLYXUDevG0L-_H2NdsWUdq4ASRb1oB4AIMnRFqykJIqIvjpG_pwF30D8C3ph2GgIN7/s1600/FP+tree+-+Copy.JPG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4iJyn64GUl1HMRrmAR0X6wG-BNz26B2R59WKS6x6mPzpsFmEzrNIW4MwqBOBhgG_fTO7I6GRStJMLYXUDevG0L-_H2NdsWUdq4ASRb1oB4AIMnRFqykJIqIvjpG_pwF30D8C3ph2GgIN7/s1600/FP+tree+-+Copy.JPG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 2</td></tr>
</tbody></table>
First need to find the conditional pattern base for C:3. If you wonder how 3 comes, it is due to frequency of occurrence of C. Now go to Figure 1 and check the Cs. There are 3 Cs and one occurrence for each. Now traverse bottom to top and get the branches which have Cs with the occurrence of C. For more clarification you can see Figure 2. We got 3 branches and they are<br />
<b>BDAE: 1 </b>- The branch which surrounded in Blue.<br />
<b>B: 1</b> - The branch which surrounded in Red.<br />
<b>BAE: 1 </b>- The branch which surrounded in Brown.<br />
<br />
These branches regard as Conditional Pattern Base for C. You have to note three facts.<br />
<b>1.</b> Even we traverse bottom to top we write the branches in top to bottom manner.<br />
<b>2. </b>C is not there.<br />
<b>3.</b> 1 came after each branch to represent the frequency of occurrence of C in each branch. You will more clear about this lately.<br />
<br />
To ensure you correctly got all the occurrences of C in FP tree, add occurrences of C in each branch and compare with all the occurrences of C in FP tree; for this case <b>1+1+1 = 3</b> it is correct.<br />
<br />
Then we have to find F-list from the Conditional Pattern Base of C. The list of items are B:3,D:1,A:2,E:2 but B:3 only eligible for sitting on the F-list due to fulfill the Minimum Support Count.So the F-list is <br />
<b>B:3</b><br />
<br />
Now draw the Conditional FP tree for C. It is in Figure 3. When drawing the conditional FP tree you have to make sure to get Conditional Pattern Base as Ordered Items which mentioned in <a href="http://hareenlaks.blogspot.com/2011/06/fp-tree-example-how-to-identify.html">previous post</a> Table 3. Now we can find <b>C:3, BC:3</b> as identified FPs from tree.<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ5robASqm-d5aXLW-zwVM5wiwH9-837bYmOfMJY-rtsJR7d39bGOPX0WrMqGR1XnkI3NdwOrcJ9xPCCDantqwTJIOEirjNKrvivNCzks3H0pInI6lLzXhJR_hsEEvcLSBPtfDYNT9u2wA/s1600/Conditional+fp+tree+1.JPG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ5robASqm-d5aXLW-zwVM5wiwH9-837bYmOfMJY-rtsJR7d39bGOPX0WrMqGR1XnkI3NdwOrcJ9xPCCDantqwTJIOEirjNKrvivNCzks3H0pInI6lLzXhJR_hsEEvcLSBPtfDYNT9u2wA/s1600/Conditional+fp+tree+1.JPG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 3</td></tr>
</tbody></table>
<br />
If you answer a question paper the answer will be <br />
<div style="color: #999999;">
Conditional pattern base for C:3</div>
<div style="color: #999999;">
BDAE: 1; B: 1; BAE: 1</div>
<div style="color: #999999;">
F-list: B:3</div>
<span style="color: #999999;">Conditional FP-tree for C</span> (Draw Figure 3.)<br />
<div style="color: #999999;">
Frequent patterns</div>
<div style="color: #999999;">
C:3, BC:3</div>
<br />
Wait..Wait..this is not full answer.<br />
Then we will find FPs by using item E.<br />
<br />
<u><b>E</b></u><br />
<br />
Let's find Conditional Pattern Base for E:4. It depicts on Figure 4 and due to the previous explanation I think you already have the idea. If not ask as a comment.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD-6l7jDjLdsgNJVHEcC2PfRBYAosCNm68UpPW-p07rLywWTrdOgvxUsZme7pSR76okQlIKVYL9tj7oWGvBxqZZhOhJDWePnTwPkW3pLaOr1bx8hdiXeq1LxFHOxPzaI0jRdU5LiBWIDXI/s1600/FP+tree+-+2.JPG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD-6l7jDjLdsgNJVHEcC2PfRBYAosCNm68UpPW-p07rLywWTrdOgvxUsZme7pSR76okQlIKVYL9tj7oWGvBxqZZhOhJDWePnTwPkW3pLaOr1bx8hdiXeq1LxFHOxPzaI0jRdU5LiBWIDXI/s1600/FP+tree+-+2.JPG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 4</td></tr>
</tbody></table>
<b>BDA: 2 </b>- Red line<br />
<b>BA:1 </b>- Brown line<br />
<b>DA:1</b> - Blue line<br />
<br />
And F-list will be <br />
<b>A:4<br />
B:3<br />
D:3</b><br />
<br />
3 comes to B by 2 Bs coming from BDA: 2 and 1 B coming from BA:1. And 4 As and 3 Ds also according to that manner. Why A appears before the B in F-list even B appears before previously? That have a reason. We got a list from this Conditional Pattern Base as B:3, D:3, A:4. But in F-list they should appear according to their frequency of occurrences in Conditional Pattern Base. So A coming to front and others going to back. Then it is easy to use for creating conditional FP tree for E.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil0o-4KApqPj1AGAauhhX0M_FmAkwz5M__ahCBFBvBBgQz2tnoESPxbyaF-JBAMpGEZHcmDjFqyKmB-PC-hh_yG_-aseqiY0oi5by5oZH9g7ZvWf2Dtq7E4iSixLk9wCgJWqpUK3MMZi8X/s1600/conditional+fp+tree+E.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil0o-4KApqPj1AGAauhhX0M_FmAkwz5M__ahCBFBvBBgQz2tnoESPxbyaF-JBAMpGEZHcmDjFqyKmB-PC-hh_yG_-aseqiY0oi5by5oZH9g7ZvWf2Dtq7E4iSixLk9wCgJWqpUK3MMZi8X/s1600/conditional+fp+tree+E.JPG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 5</td></tr>
</tbody></table>
Figure 5 displays Conditional FP tree for E according to the same method <a href="http://hareenlaks.blogspot.com/2011/06/fp-tree-example-how-to-identify.html">described in previous post.</a> Make sure to use Conditional Pattern Base as Ordered Items.<br />
<br />
For a moment forget the FP tree and conditional FP tree for E put on to your mind. So think we only have this FP tree and need to find FPs from this.<br />
<br />
Items in this FP tree are <br />
A:4<br />
B:3<br />
D:3<br />
<br />
Let's go bottom to top.<br />
<br />
<u><b><i>DE</i></b></u><br />
<br />
From where DE comes ? Even we deleted FP tree it remains in the Recycled Bin. :) We are going to identify FPs for DE. Because of we use conditional FP tree for E, E comes to back.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWz26JRu6dzREYZ2BxRUXZjJyJhgorfmY5LNwwqTPoEEshTeXf7ytJS8RkCC6z5ulp07Edp87OI9vDmCTtEpOseAOk3vO8ZGXAXAcEc1-hzmu53UeAJ1u52F0JrR-TcxnVoX4jRtiYCmY1/s1600/CFP+DE.JPG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWz26JRu6dzREYZ2BxRUXZjJyJhgorfmY5LNwwqTPoEEshTeXf7ytJS8RkCC6z5ulp07Edp87OI9vDmCTtEpOseAOk3vO8ZGXAXAcEc1-hzmu53UeAJ1u52F0JrR-TcxnVoX4jRtiYCmY1/s1600/CFP+DE.JPG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 6</td></tr>
</tbody></table>
Conditional pattern base for DE:3<br />
A:1, AB:2<br />
F-list: A:3<br />
Conditional FP-tree for DE : Figure 6<br />
Frequent patterns<br />
DE:3, ADE:3 <br />
<br />
I think you don't need explanation. Then we are going to find FPs by using BE. <br />
<br />
<u><i><b>BE</b></i></u><br />
<br />
Conditional pattern base for BE:3<br />
A:3<br />
F-list: A:3<br />
Conditional FP-tree for DE : Figure 6<br />
Frequent patterns<br />
BE:3, ABE:3<br />
<br />
Then move to AE.<br />
<br />
<u><i><b>AE</b></i></u><br />
<br />
Conditional pattern base for AE:4<br />
NULL<br />
Conditional FP-tree for DE<br />
NULL<br />
Frequent patterns<br />
AE:4<br />
<br />
We find all FPs of conditional FP tree for E. Next step is remind the previous or main tree. And before leave E we can write E:4 also as a FP. Let's move to A.<br />
<br />
<u><b>A</b></u><br />
<u><b><br />
</b></u><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7hHC7GhmA8U3-qKTMeszVHVsW8-hw-S3AJQB_Zr8mcGRFdv98tIrl41boDPxRxhb6rsfz2-MlRi3VNon3zLSLHyuFRQo2oAMJkePlCwnds55axwPIA2OBsiSu_6lJMdsD9KONJZuWe5Od/s1600/CFP+A.JPG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7hHC7GhmA8U3-qKTMeszVHVsW8-hw-S3AJQB_Zr8mcGRFdv98tIrl41boDPxRxhb6rsfz2-MlRi3VNon3zLSLHyuFRQo2oAMJkePlCwnds55axwPIA2OBsiSu_6lJMdsD9KONJZuWe5Od/s1600/CFP+A.JPG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 7</td></tr>
</tbody></table>
Conditional pattern base for A:5<br />
BD: 3; B:1; D:1<br />
F-list: B:4, D:4<br />
Conditional FP-tree for A : Figure 7<br />
<br />
Then we will go on the conditional FP tree for A as like as previous trip.<br />
<br />
<u><i><b>AD</b></i></u><br />
<br />
Conditional pattern base for AD:4<br />
B:3<br />
F-list :B:3<br />
Conditional FP-tree for AD : Figure 3<br />
Frequent patterns<br />
AD:4, ABD:3<br />
<br />
<u><i><b>AB </b></i></u><br />
<br />
Conditional pattern base for AB:4<br />
NULL<br />
Frequent patterns<br />
AB:4<br />
<br />
And also can get A:5 as a FP.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs91-JL81USodatsRU0rCQ1XwjZ6i1JiYjiUPJgC6V34Hjx6eiyHAMj8TauQHhqGPZ7ilbmc70stqc-KZLppmTkXdmDw7Lh3oLjS4Ctdsenyo_6jVmXrkgBIPtxKOcY32FcalxP2Mg1dUx/s1600/ccc.JPG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs91-JL81USodatsRU0rCQ1XwjZ6i1JiYjiUPJgC6V34Hjx6eiyHAMj8TauQHhqGPZ7ilbmc70stqc-KZLppmTkXdmDw7Lh3oLjS4Ctdsenyo_6jVmXrkgBIPtxKOcY32FcalxP2Mg1dUx/s1600/ccc.JPG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 8</td></tr>
</tbody></table>
<u><b>D</b></u><br />
<br />
Conditional pattern base for D:6<br />
B: 4<br />
F-list : B:4<br />
Conditional FP-tree for D : Figure 8<br />
Frequent patterns<br />
D:6, BD:4<br />
<br />
Then last item, B. <br />
<br />
<u><b>B</b></u><br />
<br />
Conditional pattern base for B:6<br />
NULL<br />
Conditional FP-tree for B<br />
NULL<br />
Frequent patterns<br />
B:6<br />
<br />
Hurray! We finish all items and this is time to collect all bins in to a single bin. The identified frequent itemsets from the Database (Table 1 in Previous post) with minimum support as 30% are <b>C:3, BC:3, DE:3, ADE:3 , BE:3, ABE:3, AE:4, E:4, AD:4, ABD:3, AB:4, A:5, D:6, BD:4, B:6.</b><br />
<br />
I'm sure you don't need any support for creating full answer. Please leave your comments below if this is valuable to you.</div>
</div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com61tag:blogger.com,1999:blog-2212046057163067617.post-41215636921836638252011-06-29T02:01:00.000+05:302013-04-06T15:24:12.657+05:30FP tree example (How to identify frequent patterns using FP tree algorithm)<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
FP tree algorithm, which use to identify frequent patterns in the area of Data Mining. I'm sure! after this tutorial you can draw a FP tree and to identify frequent patterns from that tree you have to read my next post, <a href="http://hareenlaks.blogspot.com/2011/10/how-to-identify-frequent-patterns-from.html">How to identify frequent patterns from FP tree</a>.<br />
<br />
Suppose you got a question as follows:<br />
<br />
<b>Question :</b>Find all frequent itemsets or frequent patterns in the following database using FP-growth algorithm. Take minimum support as 30%. <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKrH83gEm5bAYCM8wkacP61BBFIuck4-1aYjyRxF80Hg_zEnHGPpBooOcNwMS8jcsJSC4oAJtmZYTMh0jvGSXw4F50619ULO-I6Sv4keHocEg8TWk7SuV_pH87Gs-uUxXkkNU-xlSGvD07/s1600/1.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKrH83gEm5bAYCM8wkacP61BBFIuck4-1aYjyRxF80Hg_zEnHGPpBooOcNwMS8jcsJSC4oAJtmZYTMh0jvGSXw4F50619ULO-I6Sv4keHocEg8TWk7SuV_pH87Gs-uUxXkkNU-xlSGvD07/s1600/1.JPG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Table 1 - Snapshot of the Database</td></tr>
</tbody></table>
<u><b></b></u><br />
<a name='more'></a><u><b>Step 1 - Calculate Minimum support</b></u><br />
<u><b><br />
</b></u><br />
First should calculate the minimum support count. Question says minimum support should be 30%. It calculate as follows:<br />
<br />
Minimum support count(30/100 * 8) = <b>2.4</b><br />
<br />
As a result, 2.4 appears but to empower the easy calculation it can be rounded to to the ceiling value. Now, <br />
<br />
Minimum support count is <b>ceiling</b>(30/100 * 8) = <b>3</b><br />
<br />
<u><b>Step 2 - Find </b><b>frequency of occurrence</b></u><br />
<br />
Now time to find the frequency of occurrence of each item in the Database table. For example, item A occurs in row 1,row 2,row 3,row 4 and row 7. Totally 5 times occurs in the Database table. You can see the counted frequency of occurrence of each item in Table 2.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDWZVjX1BrZZVCyxTR8k3HvHne_b84HSmIX9xMOTz4sxYI6yanMY5fHp85acvXgeWYa6zai7sD43z4gAIosIJ_4sDpxqtRdchWcC_p3_Oh5PiIC9xvnd1mSQEk10Zt7L2U5GLuzexVqLwu/s1600/2.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDWZVjX1BrZZVCyxTR8k3HvHne_b84HSmIX9xMOTz4sxYI6yanMY5fHp85acvXgeWYa6zai7sD43z4gAIosIJ_4sDpxqtRdchWcC_p3_Oh5PiIC9xvnd1mSQEk10Zt7L2U5GLuzexVqLwu/s1600/2.JPG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Table2 -Frequency of Occurrence</td></tr>
</tbody></table>
<u><b>Step 3 - Prioritize the items</b><b></b></u><br />
<u><b><br />
</b></u><br />
In Table 2 you can see the numbers written in <span style="color: red;">Red</span> pen. Those are the priority of each item according to it's frequency of occurrence. Item B got the highest priority (<b>1</b>) due to it's highest number of occurrences. At the same time you have opportunity to drop the items which not fulfill the minimum support requirement.For instance, if Database contain <b>F </b>which has frequency 1, then you can drop it.<br />
<br />
<br />
*Some people display the frequent items using list instead of table. The frequent item list for the above table will be <b>B:6, D:6, A: 5, E:4, C: 3</b>.<br />
<br />
<u><b>Step 4 -Order the items according to priority</b></u><br />
<br />
As you see in the Table 3 new column added to the Table 1. In the Ordered Items column all the items are queued according to it's priority, which mentioned in the <span style="color: red;">Red</span> ink in Table 2. For example, in the case of ordering row 1, the highest priority item is B and after that D, A and E respectively.<br />
<br />
<div style="text-align: justify;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-left: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2cv5YqP4pz_xpsjxT4AepCE9nnPTI0hZY3OphBvxQwhAd2-QeTODLD3vPhMRJbcg9OH51eTCNBY0h3A36Lj-PUh8MKmyJIQ-lgihxkmT6oxOlMrc2bGmr5TEScu57tSOf_Jjb2uJX-QPH/s1600/3.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2cv5YqP4pz_xpsjxT4AepCE9nnPTI0hZY3OphBvxQwhAd2-QeTODLD3vPhMRJbcg9OH51eTCNBY0h3A36Lj-PUh8MKmyJIQ-lgihxkmT6oxOlMrc2bGmr5TEScu57tSOf_Jjb2uJX-QPH/s1600/3.JPG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Table 3 - New version of the Table 1</td></tr>
</tbody></table>
<br />
<u><b>Step 5 -Order the items according to priority</b></u><br />
<br />
As a result of previous steps we got a ordered items table (Table 3). Now it's time to draw the FP tree. I'll mention it row by row.<br />
<br />
<br />
<br />
<b><span style="font-size: small;">Row 1:</span></b><br />
Note that all FP trees have 'null' node as the root node. So draw the root node first and attach the items of the row 1 one by one respectively. (See the Figure 1) And write their occurrences in front of it. (write using a pencil dear,because next time we have to erase it. :D)<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieSHwitx_IMAswWsLzkQq80aK7488rIW0RQwKW9iZxTy40IeZS1DT7UmKyZXpJWgAwMZbpa8D4sYdyiHQkBk24D7gvLk2CgxEqQyYkhgE6Ltl_KQ3QSA-Nxxs90Owz6KSKDnMLdMqMigE5/s1600/4.JPG" imageanchor="1"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieSHwitx_IMAswWsLzkQq80aK7488rIW0RQwKW9iZxTy40IeZS1DT7UmKyZXpJWgAwMZbpa8D4sYdyiHQkBk24D7gvLk2CgxEqQyYkhgE6Ltl_KQ3QSA-Nxxs90Owz6KSKDnMLdMqMigE5/s320/4.JPG" width="139" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 1- FP tree for Row 1</td></tr>
</tbody></table>
<b><span style="font-size: small;">Row 2:</span></b><br />
Then update the above tree (Figure 1) by entering the items of row 2. The items of row 2 are B,D,A,E,C. Then without creating another branch you can go through the previous branch up to E and then you have to create new node after that for C. This case same as a scenario of traveling through a road to visit the towns of the country. You should go through the same road to achieve another town near to the particular town.<br />
When you going through the branch second time you should erase one and write two for indicating the two times you visit to that node.If you visit through three times then write three after erase two. Figure 2 shows the FP tree after adding row 1 and row 2. Note that the <span style="color: red;">red</span> underlines which indicate the traverse times through the each node.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-left: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnf4NbUnJVmeo2NdB_qilkBUFhW-ExD_qH6aodkZK6oSi7QiUnuAWv4XL8fRg0RuucB5aimrCBJnjnT0nrgK7jI02jw-s7TV53jfq2jzKuxJRq1vDe79tgWpVRs3rodk5_mWMjnjZuLQ0Y/s1600/5.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnf4NbUnJVmeo2NdB_qilkBUFhW-ExD_qH6aodkZK6oSi7QiUnuAWv4XL8fRg0RuucB5aimrCBJnjnT0nrgK7jI02jw-s7TV53jfq2jzKuxJRq1vDe79tgWpVRs3rodk5_mWMjnjZuLQ0Y/s320/5.JPG" width="98" /> </a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 2- FP tree for Row 1,2</td></tr>
</tbody></table>
<b><span style="font-size: small;">Row 3:</span></b><br />
In row 3 you have to visit B,A,E and C respectively. So you may think you can follow the same branch again by replacing the values of B,A,E and C . But you can't do that you have opportunity to come through the B. But can't connect B to existing A overtaking D. As a result you should draw another A and connect it to B and then connect new E to that A and new C to new E. See Figure 3.<br />
<br />
<b><span style="font-size: small;">Row 4:</span></b><br />
Then row 4 contain B,D,A. Now we can just rename the frequency of occurrences in the existing branch. As B:4,D,A:3.<br />
<br />
<br />
<b><span style="font-size: small;">Row 5:</span></b> <br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinAxAbszPyz4plk-50YBrgEIzu_GNddgHKp8anf1idKvRAD4L-dpn9Qlw6ewa2DMeWDOgLZRTTQ8R9a4aukC9lyLo3W7chvsy12qvKL0PZZBY0t3LXygCbq5VFjPsK5ouoWuSamsWDmEPd/s1600/1.JPG"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinAxAbszPyz4plk-50YBrgEIzu_GNddgHKp8anf1idKvRAD4L-dpn9Qlw6ewa2DMeWDOgLZRTTQ8R9a4aukC9lyLo3W7chvsy12qvKL0PZZBY0t3LXygCbq5VFjPsK5ouoWuSamsWDmEPd/s320/1.JPG" width="130" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 3 - After adding third row</td></tr>
</tbody></table>
In fifth raw have only item D. Now we have opportunity draw new branch from 'null' node. See Figure 4.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigFjuasIOQ4fdQG9JhhT_qvO6X6HHaf6D3RNgqinnw0A9CrXGIXxrDBd7PGtbiNVof2RWHzSk45oCSA21noKxRAcMhH7K56Yh_tu5kbiVqw1rtYWBOk1sBJvmDXL7KQiSURinALYwB-5RS/s1600/2.JPG" imageanchor="1"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigFjuasIOQ4fdQG9JhhT_qvO6X6HHaf6D3RNgqinnw0A9CrXGIXxrDBd7PGtbiNVof2RWHzSk45oCSA21noKxRAcMhH7K56Yh_tu5kbiVqw1rtYWBOk1sBJvmDXL7KQiSURinALYwB-5RS/s320/2.JPG" width="161" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 4- Connect D to null node</td></tr>
</tbody></table>
<br />
<b><span style="font-size: small;">Row 6:</span></b><br />
B and D appears in row 6. So just change the B:4 to B:5 and D:3 to D:4.<br />
<br />
<b><span style="font-size: small;">Row 7:</span></b><br />
Attach two new nodes A and E to the D node which hanging on the null node. Then mark D,A,E as D:2,A:1 and E:1.<br />
<br />
<b><span style="font-size: small;">Row 8 :(Ohh.. last row)</span></b><br />
Attach new node C to B. Change the traverse times.(B:6,C:1)<br />
<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjl9CycrYJSJwV5cj-EEhraaMTkzQ9EhaRG86TrV2F5mspv4886Y_eSSRlicDiI2-wdmr7drrwu05vXvKwZjT6w3uHrlTgTlDA2z5wkPqzt1If2TSiSJ1wVXRIPlxlE3zmDzWHXzbmDvWoN/s1600/6.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjl9CycrYJSJwV5cj-EEhraaMTkzQ9EhaRG86TrV2F5mspv4886Y_eSSRlicDiI2-wdmr7drrwu05vXvKwZjT6w3uHrlTgTlDA2z5wkPqzt1If2TSiSJ1wVXRIPlxlE3zmDzWHXzbmDvWoN/s320/6.JPG" width="264" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 5 - Final FP tree</td></tr>
</tbody></table>
<u><b>Step 6 - Validation</b></u><br />
<u><b></b></u><br />
<br />
After the five steps the final FP tree as follows: Figure 5.<br />
<br />
How we know is this correct?<br />
<br />
Now count the frequency of occurrence of each item of the FP tree and compare it with Table 2. If both counts equal, then it is positive point to indicate your tree is correct.<br />
<br />
<br />
I'm going to end this tutorial now. But we have to do some more to find frequent patterns. I will detail it in <a href="http://hareenlaks.blogspot.com/2011/10/how-to-identify-frequent-patterns-from.html">next post</a>.<br />
<br />
If there is any problem feel free to contact me via a comment.</div>
</div>
</div>
Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com97tag:blogger.com,1999:blog-2212046057163067617.post-47862592253278600862011-05-04T14:47:00.000+05:302013-05-30T20:18:35.091+05:30Sociodynamic position based on Synergy and Antagonism<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
I got a question in Project Management as below. I have to spend lot of time to find a proper solution. So I think it is better to put my solution here.<br />
<br />
Question : <b>What are the categories of individuals based on Synergy and Antagonism? As a project manager how will you response to those different types of individuals to make your IT project successful?</b><br />
<br />
In “Managing sensitive projects: a lateral approach” By Olivier d'. Herbemont, Bruno César, Tom Curtin, Pascal Etcheber , a book related to the Project Management, describes different levels of synergy and antagonism. By representing the synergy in x axis and antagonism in y axis can create a grid and on top of that categories of individuals or sociodynamic position of individuals exists as shown in below figure. The sociodynamic position of an individual in a project is not fixed and can vary depending on time or their understanding of the project.<br />
<br />
Then I’m going to describe what are they and as a project manager how I manage those guys. <br />
<br />
<a name='more'></a><br /><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikfmPGhIuCze1TPTSh0lUiedwMLR8YyYTrTw09MfJ5qt7WcHmSVdHeFNyaPB3UAVL22RsiZxSiG18Pi-zSrl-OY7F-9jVc8RNNJUZx310WlcycBLDtMSdWKwuMkVCTJ-kEKc9QE3W0uykF/s1600/Captureeeeeeeee.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="303" j8="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikfmPGhIuCze1TPTSh0lUiedwMLR8YyYTrTw09MfJ5qt7WcHmSVdHeFNyaPB3UAVL22RsiZxSiG18Pi-zSrl-OY7F-9jVc8RNNJUZx310WlcycBLDtMSdWKwuMkVCTJ-kEKc9QE3W0uykF/s320/Captureeeeeeeee.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sociodynamic positions</td></tr>
</tbody></table>
<b>Zealots </b><br />
<br />
The individuals who have strong synergy, no antagonism fall in to this category. They offer unquestioning support to the manager. Zealots expect orders, objectives deadlines and generally dislike participative methods such as meetings. Unfortunately, they rarely see the negative aspects of what they are doing. <br />
<br />
As a project manager I think it is good opportunity to working with zealots. Because they don’t need my instruction or reminders for complete their job. Due to lack of negative mind have some probability to fall in trouble. So I should care of them even I permit to work individually. I can give lot of responsibilities to them but should have some method to get continuous updates.<br />
<br />
<b>Passives</b><br />
<br />
Passives are people who have weak synergy and weak antagonism. Because of weak synergy they not tend to work in project and because of weak antagonism they not disturb the project. They play the silent role. Because of majority of individuals, 40% to 80% , are passives the success or the failure of the project depend on them. If they increase their synergy project will tend to success and if they enhance their antagonism project tends to fail. And they like participative methods to communicate and not like to accept orders.<br />
<br />
First should motivate them to talk. Because they may have lot of valuable ideas for positive side and negative side as well. If I show their significance to the project they may enhance their synergy and it definitely cause to success of the project.<br />
<br />
<b>Moaners</b><br />
<br />
Very similar to passives and differ from passives due to the moaning instead of silence. <br />
<br />
I can easily shift them to at least to the bunch of passives by solving their minor problems.<br />
<br />
<b>Waverers</b> <br />
<br />
The individual with the medium synergy, medium antagonism and offers qualified support to projects. Regularly, Waverers are tending to fall in to positive side because they are interested in the project.<br />
<br />
The opportunity of the waverers is they think equally about both negative and positive side of the project. It gains unbiased evaluation and it is valuable for the success of the project. My responsibility is holding them in their position and avoid fall in to negative side. In order to do that I should appreciate their ideas and should correct the path of project if have possible pitfalls.<br />
<br />
<b>Golden triangles</b> <br />
<br />
Golden triangles have high synergy, medium antagonism. Their medium antagonism cause to view the negative aspects of the project and then they are trying to clarify it or improve the goals of the project. Golden triangles got their name due to the shape on the sociodynamic matrix. They are very sensitive to information given to them and like participative methods. <br />
<br />
They are most valuable resource of mine. It is better to give as much as responsible they want. And I should encourage them to work by providing extra facilities to them.<br />
<br />
<b>Opponents </b><br />
<br />
Opposite of zealots are define as Opponents. They not see the positive side of the project. <br />
<br />
If I can remove the reasons for opposition without compromising objectives of my project I can manage them. I can discuss the reasons of their opposition and can get actions to reduce it.<br />
<br />
<b>Mutineers</b> <br />
<br />
Mutineers tend to loss themselves to stop others succeeding with strong antagonism, weak synergy. <br />
<br />
Mutineers are the most terrible ones in the organization. If I can fish the mutineers one by one I can win. If I treat some of them well then it cause divides them. Then they tend to be opponents.<br />
<br />
<b>Schismatics</b> <br />
<br />
Schismatic have synergy as well as high antagonism they accept the project but think it is being done wrong.<br />
<br />
Use the ideas of Schismatic to the project cause to reduce the antagonism of them. If can’t accept their ideas I can justify their solutions and make them happy by demonstrate the importance of their ideas.<br />
<br />
Note that the sociodynamic position of an individual is not a fixed. Depending on the project the same person will be a golden triangle, a passive or an opponent. Moreover, the same person will take a different position depending on time. More importantly it can vary depending on an individual’s understanding of the project.<br />
<br />
<b>References</b><br />
<br />
<a href="http://ic-pod.typepad.com/design_at_the_edge/2007/05/innovative_proj.html">http://ic-pod.typepad.com/design_at_the_edge/2007/05/innovative_proj.html</a></div>
</div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com6tag:blogger.com,1999:blog-2212046057163067617.post-34615976900967051562011-04-02T12:51:00.000+05:302013-04-06T15:24:54.720+05:30Steganography and Related Fields<div dir="ltr" style="text-align: left;" trbidi="on">
The general idea of hiding some information in digital content has a wider class of applications that go beyond steganography. The techniques involved in such applicationsare collectively referred to as information hiding. <br />
<br />
<a name='more'></a><br />
<br />
<div>
<b>Digital watermarking</b></div>
<br />
<div>
A special case of information hiding is digital watermarking. Digital watermarking is the process of embedding information into digital multimedia content such that the information (the watermark) can later be extracted or detected for a variety of purposes including copy prevention and control. Digital watermarking has become an active and important area of research, and development and commercialization of watermarking techniques is being deemed essential to help address some of the challenges faced by the rapid proliferation of digital content.</div>
<br />
<div>
<b>Information hiding Vs. Watermarking?</b></div>
<br />
<div>
The key difference between information hiding and watermarking is the absence of an active adversary. In watermarking applications like copyright protection and authentication, there is an active adversary that would attempt to remove, invalidate or forge watermarks. In information hiding there is no such active adversary as there is no value associated with the act of removing the information hidden in the content. Nevertheless, information hiding techniques need to be robust against accidental distortions.</div>
<br />
<div>
<b>Information hiding , Watermarking and Steganography</b> </div>
<br />
<div>
Unlike information hiding and digital watermarking, the main goal of steganography is to communicate securely in a completely undetectable manner. </div>
<br />
<div>
The majority of today’s Steganographic systems use multimedia objects like image, audio, video etc as cover media because people often transmit digital pictures over email and other Internet communication. In modern approach, depending on the nature of cover object, Steganography can be divided into five types:</div>
<ol style="text-align: left;">
<li>Text Steganography</li>
<li>Image Steganography</li>
<li>Audio Steganography</li>
<li>Video Steganography</li>
<li>Protocol Steganography</li>
</ol>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
So, in the modern age so many Steganographic techniques have been designed which works with the above concerned objects. More often in today’s security advancement, we sometimes come across certain cases in which a combination of Cryptography and Steganography are used to achieve data privacy over secrecy. Various software tools are also available in this regard.</div>
<br />
<div>
</div>
<br />
<div>
</div>
<div style="float: left; width: 600px;">
<div style="float: left; width: 200px;">
Previous Chapter</div>
<div style="float: right; width: 200px;">
Next Chapter</div>
</div>
</div>
Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com2tag:blogger.com,1999:blog-2212046057163067617.post-189203945509826922011-04-02T12:26:00.000+05:302013-05-30T20:18:49.128+05:30History of Steganography<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdbULT9Nh1WqiNHoiWIu17Di1D7EsSfP-XI7P4s8CzfG00hORKvSy-9BKEGFQqs0AhPlFcM9rM4P-SiML6glcvujF3We0a1oA6IijpJxIP3_5jyZGfPmLcDAgngMOXsaYLQb9QvscauiPi/s1600/he.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" r6="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdbULT9Nh1WqiNHoiWIu17Di1D7EsSfP-XI7P4s8CzfG00hORKvSy-9BKEGFQqs0AhPlFcM9rM4P-SiML6glcvujF3We0a1oA6IijpJxIP3_5jyZGfPmLcDAgngMOXsaYLQb9QvscauiPi/s1600/he.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Herodotus</td></tr>
</tbody></table>
<br />
The first recorded uses of steganography can be traced back to 440 BC when Herodotus mentions two examples of steganography in The Histories of Herodotus.[2] Demaratus sent a warning about a forthcoming attack to Greece by writing it directly on the wooden backing of a wax tablet before applying its beeswax surface.Wax tablets were in common use then as reusable writing surfaces, sometimes used for shorthand.<br />
<br />
Another ancient example is that of Histiaeus, who shaved the head of his most trusted slave and tattooed a message on it. After his hair had grown the message was hidden. The purpose was to instigate a revolt against the Persians. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioxdOiG96fq18IFx7PmLD9AX-uMrtlOd0Hq53zwgBqKSz7rZVxXUuwN-Pw_D5CxPaWPeGhLzIzBsk2TlO07jyRNGdZH2XvUq8SDFU-Sc6lGPYosUK5m4jx04SRrFHae-1I8_kUEBk7bsXa/s1600/hh.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" r6="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioxdOiG96fq18IFx7PmLD9AX-uMrtlOd0Hq53zwgBqKSz7rZVxXUuwN-Pw_D5CxPaWPeGhLzIzBsk2TlO07jyRNGdZH2XvUq8SDFU-Sc6lGPYosUK5m4jx04SRrFHae-1I8_kUEBk7bsXa/s200/hh.jpg" width="174" /></a></div>
<br />
<a name='more'></a> Steganography has been widely used, including in recent historical times and the present day. Possible permutations are endless and known examples include: <br />
<br />
<b>1.</b>Hidden messages within wax tablets in ancient Greece, people wrote messages on the wood, and then covered it with wax upon which an innocent covering message was written.<br />
<br />
<b>2.</b>Hidden messages on messenger's body: also used in ancient Greece.Herodotus tells the story of a message tattooed on a slave's shaved head, hidden by the growth of his hair, and exposed by shaving his head again.The message allegedly carried a warning to Greece about Persian invasion plans. This method has obvious drawbacks such as delayed transmission while waiting for the slave's hair to grow, and its one-off use since additional messages requires additional slaves.<br />
<br />
<b>3.</b>In WWII, the French Resistance sent some messages written on the backs of couriers using invisible ink. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnT_14EHSZ3if3qqmhvQHObcNNsoMobwSeHS9vGIjoMgDIIQOJfFfGy4r5lKNNnjHTDc0qXAuARG_t5wgKlTmfeQk3s_TPRN41yYc0nPeM6OyALC88j3bfgmN2I-xdne-sV3IaLr4VPdbn/s1600/fb.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" r6="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnT_14EHSZ3if3qqmhvQHObcNNsoMobwSeHS9vGIjoMgDIIQOJfFfGy4r5lKNNnjHTDc0qXAuARG_t5wgKlTmfeQk3s_TPRN41yYc0nPeM6OyALC88j3bfgmN2I-xdne-sV3IaLr4VPdbn/s1600/fb.jpg" /></a></div>
<br />
<b>4.</b>Hidden messages on paper written in secret inks, under other messages or on the blank parts of other messages. <br />
<br />
<b>5</b>.Messages written in Morse code on knitting yarn and then knitted into a piece of clothing worn by a courier. <br />
<br />
<b>6.</b>Messages written on the back of postage stamps.<br />
<br />
<b>7.</b>During and after World War II, espionage agents used photographically produced microdots to send information back and forth.Microdots were typically minute, approximately less than the size of the period produced by a typewriter. WWII microdots needed to be embedded in the paper and covered with an adhesive (such as collodion). This was reflective and thus detectable by viewing against glancing light. Alternative techniques included inserting microdots into slits cut into the edge of post cards. <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiApze1kmS5PTPzl-JF8ltbreokNxrQgW7n2OKg2DZVZKRd7wpW5yZAzvtnOxppAgvqVMzUkH0hrqs8KdYhjkkBJmGGPnDAUtYJET4prC7lyRg8h2oKF-MAq67S00edVSS-V5iMqN3XNuzb/s1600/md.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" r6="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiApze1kmS5PTPzl-JF8ltbreokNxrQgW7n2OKg2DZVZKRd7wpW5yZAzvtnOxppAgvqVMzUkH0hrqs8KdYhjkkBJmGGPnDAUtYJET4prC7lyRg8h2oKF-MAq67S00edVSS-V5iMqN3XNuzb/s1600/md.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Enlarge view of a microdot</td></tr>
</tbody></table>
<b>8.</b>During World War II, a spy for Japan in New York City, Velvalee Dickinson, sent information to accommodation addresses in neutral South America. She was a dealer in dolls, and her letters discussed how many of this or that doll to ship. The stegotext was the doll orders, while the concealed "plaintext" was itself encoded and gave information about ship movements, etc. Her case became somewhat famous and she became known as the Doll Woman. <br />
<br />
<b>9.</b>Cold War counter-propaganda. In 1968, crew members of the USS Pueblo (AGER-2) intelligence ship held as prisoners by North Korea, communicated in sign language during staged photo opportunities, informing the United States they were not defectors but rather were being held captive by the North Koreans. In other photos presented to the US, crew members gave "the finger" to the unsuspecting North Koreans, in an attempt to discredit photos that showed them smiling and comfortable.[3]<br />
<br />
These are the benchmarks of steganography.<br />
<br />
Related Links:<br />
<a href="http://hareenlaks.blogspot.com/2011/04/steganography-and-related-fields.html">Steganography and Related Fields </a><br />
<a href="http://hareenlaks.blogspot.com/2010/05/what-is-steganography.html">What is Steganography? </a><br />
<br />
<div style="float: left; width: 600px;">
<div style="float: left; width: 200px;">
Previous Chapter</div>
<div style="float: right; width: 200px;">
Next Chapter</div>
</div>
</div>
</div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com4tag:blogger.com,1999:blog-2212046057163067617.post-31406739740187959942011-03-29T02:22:00.000+05:302013-05-30T20:19:18.249+05:30Conclusion (Conclude Introduction to Autonomic Computing)<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html"><u>1.0 Introduction</u></a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>10.0 Conclusion</b></span><br />
<br />
In this paper, we introduced the autonomic computing paradigm, which is inspired by biological systems such as the autonomic human nervous system, and enables the development of self-managing computing systems and applications. The systems use autonomic strategies and algorithms to handle complexity and uncertainties with minimum human intervention.<br />
<br />
Several research efforts focused on enabling the autonomic properties address four main areas: self-healing, self-protection, self-configuration, and self-optimization. Projects in both industry and academia, have addressed autonomic behaviors at all levels, from the hardware level to software systems and applications. At the hardware level, systems may be dynamically upgradable, while at the operating system level, active operating system code may be replaced dynamically. Efforts have also focused on autonomic middle-ware, programming systems and run-time. At the application level, self optimizing databases and web servers dynamically reconfigure to adapt service performance.<br />
<br />
However, achieving overall autonomic behaviors remains an open and significant challenge, which will be accomplished through a combination of process changes, skills evolution, new technologies and architecture, and open industry standards.<br />
<br />
<span style="font-size: large;"><b>Acknowledgment</b></span><br />
<br />
Thanks to researchers who are researches about autonomic computing.<br />
<br />
<span style="font-size: large;"><b>References</b></span><br />
<br />
[1] Autonomic Computing: An Overview_ Manish Parashar and Salim Hariri<br />
[2]Autonomous Computing Systems by Neil Joseph Steiner<br />
[3]http://en.wikipedia.org/wiki/Autonomic_Computing<br />
[4]www.research.ibm.com/gryphon/<br />
[5]http://www.cs.unibo.it/projects/anthill<br />
[6]http://www.software-rejuvenation.com/<br />
[7]P. Horn, Autonomic Computing: IBM’s Perspective on the State of Information Technology, IBM Corporation (October 15, 2001); available at http://www.research.ibm.com/autonomic/manifesto/autonomic_computing.pdf.<br />
[8]http://www.expresscomputeronline.com/20020819/focus1.shtml<br />
[9]Research Challenges in Autonomic Computing by Jeff Kephart IBM Research<br />
[10]The Autonomic Computing Paradigm by SALIM HARIRI, * BITHIKA KHARGHARIA, HOUPING CHEN, JINGMEI YANG and YELIANG ZHANG<br />
High Performance Distributed Computing Laboratory, University of Arizona<br />
MANISH PARASHAR and HUA LIU<br />
The Applied Software Systems Laboratory, Rutgers, The State University of New Jersey<br />
[11]Evaluation issues in Autonomic Computing, Julie A. McCann, Markus Huebscher<br />
Department Of Computing, Imperial College London<br />
[12]The Vision of Autonomic Computing, Jeffrey O. Kephart, David M. Chess,IBM Thomas J.Watson Research Center<br />
[13]Learning Procedures for Autonomic Computing by Tessa Lau, Daniel Oblinger, Lawrence Bergman, and Vittorio Castelli<br />
[14]The dawning of the autonomic computing era<br />
by A. G. Ganek ,T. A. Corbi<br />
[15]http://www.research.ibm.com/autonomic/overview/<br />
[16]http://www-dse.doc.ic.ac.uk/projects.html<br />
[17]www.research.ibm.com/journal/sj/362/aman.html<br />
[18] http://www.research.ibm.com/<br />
[19]www.research.ibm.com/autonomic/academic/research.html<br />
[20]www.almaden.ibm.com/<br />
[21]www.research.ibm.com/autonomic/academic/research.html<br />
[22]http://roc.cs.berkeley.edu/<br />
[23]http://oceanstore.cs.berkeley.edu/<br />
<br />
<br />
<div style="text-align: right;">By K.H.L.R. Perera</div><br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">Previous Chapter</a></div><div style="float: right; width: 200px;">Next Chapter</div></div></div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com14tag:blogger.com,1999:blog-2212046057163067617.post-87572344931424558382011-03-29T02:17:00.000+05:302013-05-30T20:19:18.262+05:30Future directions of Autonomic computing<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>9.0 Future direction of Autonomic computing</b></span><br />
<br />
Realistically, 100 percent autonomic systems will be very difficult to build and will require significant exploration of new technologies and innovations. That’s why researches view this as a Grand Challenge for the entire IT industry. People will need to make progress along two tracks:<br />
First, making individual system components autonomic and achieving autonomic behavior at the level of global enterprise IT systems.<br />
<br />
That second track may prove to be extremely challenging. Unless each component in a system can share information with every other part and contribute to some overall system awareness and regulation, the goal of autonomic computing will not really be reached. So one huge technical challenge entails figuring how to create this “global” system awareness and management. Or to put it another way, how do we optimize the entire stack of computing layers as a whole? It’s not something we currently know how to do.<br />
<br />
We know there are also many interim challenges: how to create the proper “adaptive algorithms”—sets of rules that can take previous system experience and use that information to improve the rules or how to balance what these algorithms “remember” with what they ignore. We humans tend to be very good at the latter—we call it “forgetting”—and at times it can be a good thing: we can retain only significant information and not be distracted by extraneous data.<br />
<br />
Still another problem to solve: how to design an architecture for autonomic systems that provides consistent interfaces and points of control while allowing for a heterogeneous environment. We could go on, as the list of problems is actually quite long, but it is not so daunting as to render autonomic computing another dream of science fiction. In fact, we’re beginning to make progress in key areas.<br />
<br />
Many established fields of scientific study will contribute to autonomic computing.<br />
What we’ve learned in artificial intelligence, control theory, complex adaptive systems and catastrophe theory, as well as some of the early work done in cybernetics, will give us a variety of approaches to explore. Current research projects at laboratories and universities include self-evolving systems that can monitor themselves and adjust to some changes, “cellular” chips capable of recovering from failures to keep long-term applications running, heterogeneous workload management that can balance and adjust workloads of many applications over various servers, and traditional control theory applied to the realm of computer science, to name just a few.<br />
<br />
The following list is a select number of recommendations and observations that have come to light during the research and writing of this book. These recommendations are not in any specific order—rather they are a list of thoughts, suggestions, and recommendations that may make autonomic computing more functional.<br />
<br />
Develop autonomic tools and technologies on top of existing standards.</div><div style="text-align: justify;">Develop autonomic-based systems using multivendor approaches.</div><div style="text-align: justify;">Develop metrics to assess the relative strengths and weakness of different approaches. Provide mature software development methodologies and tools for autonomic-based systems.<br />
Develop sophisticated yet easy-to-use autonomic environments to include support for design, test, maintenance, and visualization of autonomic-oriented systems.<br />
Develop libraries of interaction protocols designed for specific autonomic behavior interactions.<br />
<br />
Develop the ability for autonomics to collectively evolve languages and protocols specific to the application domain and the autonomics involved.<br />
Work toward autonomic-enabled semantic Web services.<br />
Develop tools for effective sharing and negotiation strategies.</div><div style="text-align: justify;">Develop computational models of norms and social structure.Develop sophisticated organizational views of autonomic systems.<br />
Advance the state of the art in the theory and practice of negotiation strategies.Develop an enhanced understanding of autonomic society dynamics. Advance the state of the art in the theory and practice of argumentation strategies.</div><ul style="text-align: left;"><li>Develop autonomic-based eScience systems for the scientific community.</li>
<li>Develop techniques for allowing users to specify their preference and desired outcome of negotiation in complex environments.</li>
<li>Develop techniques to enable autonomic to identify, create, and dissolve coalitions in multiautonomic negotiation and argumentation contexts.</li>
<li>Develop techniques for autonomic personalization.</li>
<li>Develop distributed learning mechanisms.</li>
<li>Develop techniques to enable automatic runtime reconfiguration and redesign of autonomic systems.Develop techniques for testing the reliability of autonomics. </li>
<li>Undertake research on methods for ensuring security and verifiability of autonomic systems. </li>
<li>Develop and implement trust and reputation mechanisms.Engage in related-research standardization activities (e.g., UDDI, WDL, WSFL, XLANG, OMG, CORBA, and other widely used industrial-strength open standards).</li>
<li>Build autonomic prototypes spanning organizational boundaries (potentially conflicting). </li>
<li>Encourage early adopters of autonomic technology, especially those who take some risk. Provide incentives.</li>
<li>Develop a catalog of early adopter case studies, both successful and unsuccessful. </li>
<li>Provide analysis and publish reasons for success and failure cases.</li>
<li>Identify and publish best practices for autonomic-oriented development and deployment.Support open standardization efforts.</li>
</ul><div style="text-align: justify;"><br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">Previous Chapter</a></div><div style="float: right; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/conclusion-conclude-introduction-to.html">Next Chapter</a></div></div><br />
</div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com1tag:blogger.com,1999:blog-2212046057163067617.post-68797522103959655862011-03-29T02:07:00.000+05:302013-05-30T20:19:18.260+05:30Autonomic Computing Research Issues and Challenges<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>8.0 Autonomic Computing Research Issues and Challenges</b></span><br />
<br />
Meeting the grand challenges of autonomic computing presents fundamental and significant research challenges that span all levels, from the conceptual level to architecture, middleware, and applications. [13] Key research issues and challenges are presented below.<br />
<br />
<b>Conceptual Challenges:</b><br />
Conceptual research issues and challenges include;<br />
-Defining appropriate abstractions and models for specifying, understanding, controlling, and implementing autonomic behaviors.<br />
-Adapting classical models and theories for machine learning, optimization and control to dynamic and multi agent system<br />
-Providing effective models for negotiation that autonomic elements can use to establish multilateral relationships among themselves<br />
-Designing statistical models of large networked systems that will let autonomic elements or systems detect or predict overall problems from a stream of sensor data from individual devices.<br />
<br />
<b>Architecture Challenges:</b><br />
Autonomic applications and systems will be constructed from autonomic elements that manage their internal behavior and their relationships with other autonomic elements in accordance with policies that humans or other elements have established. As a result, system level self-managing behaviors will arise from the self-managing behaviors of constituent autonomic elements and their interactions. System and software architectures, in which local as well as global autonomic behaviors can be specified, implemented and controlled in a robust and predictable manner remains a key research challenge.<br />
<b><br />
Middleware Challenges:</b><br />
The primary middleware level research challenge is providing the core services required to realize autonomic behaviors in a robust, reliable and scalable manner, in spite of the dynamism and uncertainty of the system and the application.<br />
These include discovery, messaging, security, privacy, trust, etc. Autonomic systems will require autonomic elements to identify themselves, discover and verify the identities of other entities of interest, dynamically establish relationships with these entities, and to interact in a secure manner. Further the middleware itself should be secure, reliable and robust against new and insidious forms of attack that use self-management based on high-level policies to their own advantage.<br />
<br />
<b>Application Challenges:</b><br />
The key challenges at the application level are the formulation and development of systems and applications that are capable of managing themselves. This includes programming models, frameworks and middleware services that support the definition of autonomic elements, the development of autonomic applications as the dynamic and opportunistic composition of these autonomic elements, and the policy, content and context driven definition, execution and management of these applications.<br />
<br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">Previous Chapter</a></div><div style="float: right; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">Next Chapter</a></div></div></div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com7tag:blogger.com,1999:blog-2212046057163067617.post-63499897028569752802011-03-29T02:04:00.000+05:302013-05-30T20:19:18.254+05:30What happen if does not have Autonomic Computing in the future?<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>7.0 What happen if does not have Autonomic Computing in the future?</b></span><br />
<br />
What if the unthinkable happens and we do not adopt autonomic computing or similar technology?<br />
Mixtures of the following events will happen with different severity.<br />
1. Complexity will continue to increase, reaching unmanageable proportions.<br />
2. Further pressures will increase on IT staff to fix unfixable problems.<br />
3. Reliability of systems and performance will deteriorate. Businesses will suffer.<br />
4. Corporations will lose their competitive edge and lose substantial markets and profits.<br />
5. Corporations will be required to increase their IT budgets to astronomical proportions.<br />
6. Senior management will reject these astronomical budget requests—the cycle of problems will continue.<br />
7. More and more skilled IT staff will be needed at substantial costs.<br />
8. The health of many IT staff will suffer.<br />
<br />
The IT industry has lingered too long in the religion of overspecialization, in which integration was just another specialty. The IT industry has made spectacular progress in almost every aspect of computing. But it has not made enough in the one area that now counts most: dealing with the complexity generated by all the systems we have installed so far. In this heady rush, there is a danger of losing sight of the very people who use IT and who have come to depend on us for increased productivity and improvement in many aspects of their daily lives. We've made it unnecessarily difficult for them to tap the potential we've promised them. It's time for this to change. It must change. Chaos is not an option.<br />
<br />
This next era of computing will enable progress and abilities we can barely envision today. But the best measure of our success will be when our customers do not think about the functioning of computing systems.<br />
<br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">Previous Chapter</a></div><div style="float: right; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">Next Chapter</a></div></div></div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com0tag:blogger.com,1999:blog-2212046057163067617.post-5483609047343033142011-03-29T02:00:00.000+05:302013-05-30T20:19:18.252+05:30Applications of Autonomic Computing<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>6.3 Applications of Autonomic Computing </b></span><br />
<br />
Autonomic computing promises to simplify the management of computing systems. But that capability will provide the basis for much more: from seamless e-sourcing and Grid Computing, to dynamic e-business and the ability to translate business decisions that managers make to the IT processes and policies that make those decisions a reality.<br />
<br />
E-sourcing is the ability to deliver IT as a utility, when you need it, in the amount you must have to accomplish the task at hand. Autonomic computing will create huge opportunities for these kinds of services.<br />
<br />
Other applications include server load balancing, process allocation, monitoring power supply, automatic updating of software and drivers, pre-failure warning, memory error-correction, automated system backup and recovery, etc.<br />
<br />
One area where autonomic computing can contribute significantly is Grid Computing. Grids, empowered with the self-managing capabilities of autonomics can revolutionize computing. And the applications are not just restricted to the IT industry alone.<br />
<br />
There are several Grid Computing initiatives underway. The University of Pennsylvania, for instance, is building a powerful grid that aims to bring advanced methods of breast cancer diagnosis and screening to patients, while reducing costs. The Grid is a utility-like service delivered over the Internet, enabling thousands of hospitals to store mammograms in digital form. The Grid will provide analytical tools that help physicians diagnose individual cases and identify cancer ‘clusters’ in the population.<br />
<br />
Another example is the North Carolina Biometrics Grid, accessible to thousands of researchers and educators to help accelerate the pace of genomic research that could lead to new medicines to combat diseases and develop more nutritious foods to feed the world’s population.<br />
<br />
But autonomic computing development faces some challenges too and it may be some time before we see its implementation in applications like Grid Computing.<br />
<br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">Previous Chapter</a></div><div style="float: right; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">Next Chapter</a></div></div></div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com4tag:blogger.com,1999:blog-2212046057163067617.post-26116228460379838652011-03-29T01:55:00.000+05:302013-05-30T20:19:18.248+05:30Benefits of Autonomic Computing<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>6.2 Benefits of Autonomic Computing</b></span><br />
<br />
The main benefit of autonomic computing is reduced TCO (Total Cost of Ownership). Breakdowns will be less frequent, thereby drastically reducing maintenance costs. Fewer personnel will be required to manage the systems.<br />
<br />
According to IBM studies, approximately 80 percent of the cost of major computer systems revolved around hardware and software procurement earlier. Now, the cost of trained personnel required to manage these systems is roughly equivalent to the equipment costs. IBM feels the cost of personnel will double that of equipment in the next five to six years.<br />
<br />
The most immediate benefit of autonomic computing will be reduced deployment and maintenance cost and increased stability of IT systems through automation. IBM also says that autonomic systems can reduce the time for deploying new systems.<br />
<br />
The challenge for a customer today is that his IT infrastructure is most likely heterogeneous, meaning it’s comprised of hardware from multiple vendors. This makes it increasingly difficult to add systems and manage them autonomically. Customers spend three-fourths of their application deployment time and costs on the integration equation. We need autonomic capabilities so that IT infrastructures can be self-configuring, self-healing, self-optimizing and self-protecting.<br />
<br />
Another benefit of this technology is that it provides server consolidation to maximize system availability, and minimizes cost and human effort to manage large server farms.<br />
<br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">Previous Chapter</a></div><div style="float: right; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">Next Chapter</a></div></div></div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com2tag:blogger.com,1999:blog-2212046057163067617.post-11067045836254456792011-03-29T01:52:00.000+05:302013-05-30T20:19:18.245+05:30Initiatives of Autonomic Computing - Autonomic computing today<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>6.0. Autonomic Computing today </b></span><br />
<br />
It is possible to find some aspects of autonomic computing already in today’s software products .This section describes the current initiatives (section 6.1.), benefits (section 6.2.), applications which are using autonomic concept (section 5.3.).<br />
<br />
<b><span style="font-size: large;">6.1. Initiatives of Autonomic Computing</span></b><br />
<br />
In today’s various computer vendors and research institutions are involved in autonomic computing. The technology is not only applicable to servers, but also extends to databases, software applications, and Grid Computing networks.<br />
<br />
Perhaps the first elements of autonomous computing were ‘software agents’ that made waves around 1999. A prime example is Computer Associates’ Neugents. According to Computer Associates, Neugents look for patterns in data and can extrapolate from the patterns to predict future events[8].<br />
<br />
‘Spiders’ or software agents from search engines are another example. Also called ‘Bots’, these agents scour the Web looking for new websites and then return to the search engine and update its database with the new URLs[8].<br />
<br />
Windows XP also incorporates self-management technology. When an application crashes, the user can shut it down systematically, thereby preventing the entire system from freezing or hanging. Further, Windows XP looks out for updates and automatically downloads these when available.<br />
<br />
Recent versions of Microsoft Office include a Repair feature. So if key program file (such as Winword.exe) gets corrupted or accidentally deleted, the software can reinstall it. Such features will soon be present in other desktop software.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_CwUbK6-NOcZ-kyOUVS2Bk1IxqVu9-BhWwi9fLChUziB6wBF7DyFASVkejST5XqXBpRBBWqYNeB69dZNpW50c6ZolE4T6aBHROCeeH0paXQCA7yKW76hNjif-xXN0tEczmRp92N9BOiQo/s1600/index.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_CwUbK6-NOcZ-kyOUVS2Bk1IxqVu9-BhWwi9fLChUziB6wBF7DyFASVkejST5XqXBpRBBWqYNeB69dZNpW50c6ZolE4T6aBHROCeeH0paXQCA7yKW76hNjif-xXN0tEczmRp92N9BOiQo/s1600/index.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 6.1- plug and play devices</td></tr>
</tbody></table>Plug-and-play is another element of autonomous computing. Plug in a new device to your PC and the system will automatically detect it. The operating system will then fire up its hardware wizard, which guides you through the process of installing the appropriate drivers for the new device.<br />
<br />
One company that is actively working towards fully autonomous systems is IBM, which has an initiative named Project eLiza .IBM has incorporated some elements of eLiza in its servers. The company is demonstrating software called Enterprise Workload Manager, which monitors groups of servers, managing the machines and moving work between them without the aid of human administrators [8].<br />
<br />
An initiative similar to eLiza is Project Oceano. It will enable a group of Linux servers to share jobs, and reassign jobs when new servers are added or removed from the cluster.<br />
<br />
Compaq is also pursuing autonomic computing. It is offering a suite of tools collectively called Proliant Essentials. The tool with autonomic characteristics is Compaq Insight Manager. This software delivers pre-failure alerts for Compaq ProLiant servers, thereby proactively detecting potential server failures before they result in unplanned system downtime. Another tool in the suite is ActiveUpdate, an advanced Web-based application that provides proactive notification and automatic download of software updates for all Compaq systems that range from handhelds to servers.<br />
<br />
Another example of an autonomic system is the Adaptive data flow engine, a technology used to scan ‘Deep Web’ databases and collect information. Deep Web refers to information on the Internet that cannot be found using traditional search engines by using Telegraph software. Telegraph does much more than traditional search engines. It fetches data from Web-accessible databases, analyses it, does cross-referencing, collates data and presents it all on one screen.<br />
<br />
Research in autonomic computing is also taking place in labs at MIT, University of Texas, University of Michigan and other universities.<br />
<br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">Previous Chapter</a></div><div style="float: right; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">Next Chapter</a></div></div></div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com0tag:blogger.com,1999:blog-2212046057163067617.post-5165445973218975222011-03-29T01:46:00.000+05:302013-05-30T20:19:18.250+05:30Autonomic computing architecture<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>5.0 Autonomic Computing architecture</b></span><br />
<br />
In an autonomic computing architecture, the basic management element is a control loop, depicted in Figure 5.1. This acts as manager of the resource through monitoring, analysis, and actions taken on a set of predefined system policies. These control loops, or managers, can communicate and eventually will negotiate with each other and other types of resources within and outside of the autonomic computing architecture [14].<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody style="text-align: left;">
<tr style="text-align: left;"><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmxw00z1zCqiQ35137Hx7pz8oiLYPbNGMQM4qpEw_BRIE9E7Qi4OBMZmHmuZZojS6GcOs3oq3CRHipsXr0iZc6focz02v3pgOaoIB4DPhwOVphaiyQD-q1uc2gIoUtlskh7ueC1dEkbhZQ/s1600/ac.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmxw00z1zCqiQ35137Hx7pz8oiLYPbNGMQM4qpEw_BRIE9E7Qi4OBMZmHmuZZojS6GcOs3oq3CRHipsXr0iZc6focz02v3pgOaoIB4DPhwOVphaiyQD-q1uc2gIoUtlskh7ueC1dEkbhZQ/s1600/ac.jpg" /></a></td></tr>
<tr style="text-align: left;"><td class="tr-caption" style="text-align: center;">Figure 5.1 An example of a basic autonomic control loop.</td></tr>
</tbody></table><br />
This collects information from the system and makes decisions based on that data and then issues instructions to make adjustments to the system. An intelligent control loop can provide functionality of autonomous computing, such as the following:<br />
<ul><li>Requesting additional processing cycles when needed.</li>
<li>Installing software and upgrades.</li>
<li>Restarting a system after a failure.</li>
<li>Initiating backups after daily processing.</li>
<li>Shutting down systems after detection of an intrusion.</li>
</ul>These are many of the self-managing functions that we have been discussing so far. They will be available in embedded software or system tools. An alternative approach is to install control loops in runtime environments for faster responses and actions. When fully operational, control loops will hide complexity from end-users and IT professionals.<br />
<br />
In Figure 5.1, we see the control loop is divided into two basic sub elements:<br />
1. The Managed Element— This can be any component in the autonomous system, such as a server, a database, or a file, or it can be numerous related larger elements, such as a cluster of servers, a complete software application, or even a business unit. This means that managed elements are highly scalable. The sensors and effectors control the managed element.<br />
2. The Autonomic Manager— This manages the collection, filtering, and reports of the data collected from the element from the sensors. It also analyzes, models if necessary, and learns about the element, gaining knowledge. With this knowledge, it can predict future situations. The planning part provides the structure the mechanism needs for the actions it takes to achieve the desired goals and objectives of the autonomous system. The planning part also uses the predefined policies that establish the goals and objectives. These policies are described in the system. The execute part of the autonomic manager provides control of the commands being accomplished. It will establish whether the commands completed their required actions.<br />
<br />
The sensors provide the mechanisms to collect data on the state of the element. To trigger the sensors will require a "get" instruction—for example, "get the information of the customer database"—or for the element to change in a material fashion, such as volume or time. An example of the last trigger would be "get the transaction information when the database completes the daily update."<br />
<br />
The effectors are the mechanisms that change the state of an element. In other words, they act or alter the configuration of the element from the data provided from the sensors. The effectors are a set of software commands, or application programming interfaces (APIs), that alter the element's configuration.<br />
<br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">Previous Chapter</a></div><div style="float: right; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">Next Chapter</a></div></div><br />
</div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com7tag:blogger.com,1999:blog-2212046057163067617.post-6821960508707411732011-03-29T01:39:00.000+05:302013-05-30T20:19:18.257+05:30Comparison of current Computing Systems, with autonomic computing (Autonomic Computing Vs Current Computing)<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>Autonomic Computing Vs Current Computing</b></span><br />
<br />
Table 4.1 compares the four states of autonomic computing with how we manage today and what it will be like with full autonomic systems.<br />
<br />
<table border="1"><tbody>
<tr><td>Concept</td><td>Current Computing</td><td>Autonomic Computing</td></tr>
<tr><td>Self-configuration</td><td>Corporate data centers have multiple vendors and platforms.<br />
Installing, configuring, and integrating systems is time-consuming and error prone</td><td>Automated configuration of components and systems follows high-level policies. Rest of system adjusts automatically and seamlessly2</td></tr>
<tr><td>Self-optimization</td><td>Systems have hundreds of manually set nonlinear tuning parameters, and their number increases with each release</td><td>Components and systems continually seek opportunities to improve their own performance and efficiency</td></tr>
<tr><td>Self-healing</td><td>Problem determination in large, complex systems can take a team of programmers weeks</td><td>System automatically detects, diagnoses, and repairs localized software and hardware problems</td></tr>
<tr><td>Self-protections</td><td>Detection of and recovery from attacks and cascading failures is manual</td><td>System automatically defends against malicious attacks or cascading failures. It uses early warning to anticipate and prevent systemwide failures</td></tr>
</tbody></table><br />
<br />
<br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">Previous Chapter</a></div><div style="float: right; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">Next Chapter</a></div></div></div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com2tag:blogger.com,1999:blog-2212046057163067617.post-68696199736845922042011-03-29T01:25:00.000+05:302013-05-30T20:19:18.259+05:30Four basic elements of autonomic computing<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>4.0 Four basic elements of autonomic computing</b></span><br />
<br />
By examine the above eight characteristics researches identifies that autonomic computing has four basic elements: self-configuring, self-healing, self-optimizing, and self-protecting.<br />
<br />
<span style="font-size: large;"><b>4.1 Self-Configuring</b></span><br />
<br />
An autonomous computing system must be able to install and set up software automatically. To do so, it will utilize dynamic software configuration techniques, which means applying technical and administrative direction and surveillance to identify and document the functional and physical characteristics of a configurable item. Also to control changes to those characteristics, to record and report change processing and implementation status, and to verify compliance with specified service levels. Also, downloading new versions of software and installing regular service packs are required. When working with other autonomous components, an autonomous system will update new signatures for virus protection and security levels. Self-configuration will use adaptive algorithms to determine the optimum configurations.<br />
Examples:<br />
1. Updating Web pages dynamically with software changes, testing those changes, analyzing the results, releasing the system back into production, and reporting back to self-management whether the procedure was successful.<br />
2. Installation, testing, and release of regular vendor service packs.<br />
3. Installation of vendor patches, corrections, and modifications together with the necessary testing and release.<br />
4. Installation of new software releases—automatically and seamlessly.<br />
<br />
<span style="font-size: large;"><b>4.2 Self-optimizing</b></span><br />
<br />
An autonomous system will never settle for the status quo. It will be constantly monitoring predefined system goals or performance levels to ensure that all systems are running at optimum levels. With the business constantly changing and demands from customers and suppliers changing equally fast, self-adapting requirements will be needed.<br />
<br />
Self-optimization will be the key to allocating e-utility-type resources, determining when an increase in processing cycles is needed, how much in needed, where they are needed, and for how long. To be effective, autonomous self-optimization will need advanced data and feedback. The metrics need to be in a form where rapid analysis can take place. Many new and innovative techniques are needed for optimization to be successful. For example, control theory is needed in new autonomous infrastructures. New algorithms to process control decisions will be needed.<br />
Examples:<br />
1. Calling for additional processing power from the e-utility when needed. Releasing those additional cycles when peaks are over.<br />
2. Working with outside vendor software.<br />
3. Interfacing with other autonomic modules to exchange data and files.<br />
4. Optimum sub-second response times for all types of access devices, such as personal computers, handheld devices, and media phones.<br />
<br />
<span style="font-size: large;"><b>4.3 Self-healing</b></span><br />
<br />
Present computer systems are very weak. They fail at the smallest amount problem. If a period, a comma, or a bracket is not correct, the software will fail. We still have much to do in designing tolerant systems. Autonomous computing systems will have the ability to discover and repair potential problems to ensure that the systems run smoothly.<br />
<br />
With today's complex IT architectures, it can be hours before a problem is identified at the root cause level. System staff members need to pore over listings of error logs and memory dumps, tracing step-by-step back to the point of failure. The cost of downtime to the business is too expensive. For example, in large-scale banking networks, the cost can be as much as $2,600,000 per hour. Self-healing systems will be able to take immediate action to resolve the issue, even if further analysis is required. Rules for self-healing will need to be defined and applied. As autonomous systems become more sophisticated, embedded intelligence will be applied to discover new rules and objectives. For example, recall from the pervious section IBM will be building SMART (Self-Managing and Resource Tuning) databases into upcoming versions of their DB2 database product. This database is designed to run with less need for human intervention. For example, the user can opt not to be involved, and the database will automatically detect failures when they occur and configure itself by installing operating systems and data automatically to cope with the changing demands of e-business and the Internet [19].<br />
Examples:<br />
1. Self-correcting Job Control Language (JCL): when a job fails, the errors or problems are identified and jobs rerun without human intervention.<br />
2. An application error forces the entire system to halt. After root cause analysis, the error is corrected, recompiled, tested, and moved back into production.<br />
3. A database index fails. The files are automatically re-indexed, tested, and loaded back into production.<br />
4. Automatically extend file space and database storage, according to previous data on growth and expansion.<br />
<br />
<span style="font-size: large;"><b>4.4 Self-protecting</b></span><br />
<br />
In an increasingly hostile corporate world, autonomous systems must identify, detect, and protect valuable corporate assets from numerous threats. They must maintain integrity and accuracy and be responsible for overall system security. For years before the Internet, each corporation was an isolated island where threats usually came from within.<br />
<br />
Now, outside threats come daily, and security and protection are paramount. Threats must be identified quickly and protective action taken.<br />
<br />
Autonomic system solutions must address all aspects of system security at the platform, operating system, network, application, Internet, and infrastructure levels. This involves developing new cryptographic techniques and algorithms, their secure implementation, and designing secure networking protocols, operating environments, and mechanisms to monitor and maintain overall system integrity. Such security solutions need to be standardized to provide/preserve interoperability and to ensure that these techniques are used in a correct way.<br />
<br />
To achieve this will require continuous sensors feeding data to a protection center. A log of events will be written and accessed when appropriate for audit purposes. To manage the threat levels, we might expect a tiered level. Threats can be escalated through the tiers for increasing action and priority.<br />
Examples:<br />
1. Confirm the ability of backup and recovery resources that may be needed.<br />
2. Implement tiered security levels.<br />
3. Focus resources on network monitoring and immediately disconnect computer systems with suspicious network traffic.<br />
4. Verify that network configurations inventories are correct and, if not, take action.<br />
5. Contact system administrators outside of autonomous system and other offices that may be affected by the increasing threat levels.<br />
6. Have the system verify that all computer systems are at the appropriate version levels, including "patches." Update automatically as needed.<br />
7. Resolve any open security concerns.<br />
8. Implement any special software for additional security protection according to the threat level.<br />
9. Contact offsite vendors to determine if any preventive measures (patches, etc.) to be applied to both hardware and software.<br />
<br />
In next chapter Table 4.1 compares the four states of autonomic computing with how we manage today and what it will be like with full autonomic systems.<br />
<br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">Previous Chapter</a></div><div style="float: right; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">Next Chapter</a></div></div></div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com0tag:blogger.com,1999:blog-2212046057163067617.post-24858075651909665502011-03-29T01:13:00.000+05:302013-05-30T20:19:18.246+05:30University research projects in autonomic computing<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>3.2 University research projects in autonomic computing</b></span><br />
<br />
IBM Research contributes to university research in a number of ways, including awarding money and equipment grants. The following projects are funded and co-managed by IBM research and other units within IBM.<br />
<br />
<b>1. OceanStore by Berkeley University of California</b><br />
<br />
OceanStore is a global persistent data store designed to scale to billions of users. It provides a consistent, highly available, and durable storage utility atop an infrastructure comprised of untrusted servers. Any computer can join the infrastructure, users need only subscribe to a single OceanStore service provider, although they may consume storage and bandwidth from many different providers. Researchers at Berkeley are exploring the space of Introspective Computing—systems that perform continuous, online adaptation. Applications include on-chip tolerance of flaky components and continuous optimization to adapt to server failures and denial of service attacks as well as autonomic computing. [23]<br />
<br />
<b>2. Recovery-Oriented Computing by Berkeley University of California</b><br />
<br />
Recovery-Oriented Computing (ROC) project is a joint Berkeley/Stanford research project that is investigating novel techniques for building highly dependable Internet services. ROC emphasizes recovery from failures rather than failure-avoidance. This philosophy is motivated by the observation that even the most robust systems still occasionally encounter failures due to human operator error, transient or permanent hardware failure, or software anomalies resulting from software aging. [21]<br />
<br />
<b>3. Anthill project by University of Bologna, Italy</b><br />
<br />
Anthill is a framework built to support the design, implementation, and evaluation of peer-to-peer (P2P) applications. P2P systems are characterized by decentralized control, large scale, and extreme dynamism of their operating environment and can be seen as instances of Complex Adaptive Systems, typically found in biological and social sciences. Anthill exploits this analogy and advocates a methodology whereby the desired application properties correspond to the "emergent behavior" of the underlying complex adaptive system. An Anthill system consists of a dynamic network of peer nodes; societies of adaptive agents travel through this network, interacting with nodes and cooperating with other agents in order to solve complex problems. Anthill can be used to construct different classes of P2P services that exhibit resilience, adaptation, and self-organization properties. [5]<br />
<br />
<b>4. Software Rejuvenation by Duke University:</b><br />
<br />
Software rejuvenation is a proactive fault management technique aimed at cleaning up a system's internal state to prevent the occurrence of more severe crash failures in the future. It involves occasionally terminating an application or a system, cleaning its internal state, and restarting it. Current methods of software rejuvenation include system restart, application restart (partial rejuvenation), and node/application failover (in a cluster system). Software rejuvenation is a cost-effective technique for dealing with software faults that include protection not only against hard failures, but against performance degradation as well. Duke University collaborated with IBM to develop the IBM Director Software Rejuvenation tool. [6]<br />
<br />
<b>5. Bio-Inspired Approaches to Autonomous Configuration of Distributed Systems, University College London, England</b><br />
<br />
Next generation networks require new control techniques to increase automation and deal with complexity. Active networks in particular will require the management and control systems to evolve extremely rapidly, since users will be continuously adding new applications, services, and virtual configurations. This research is exploring novel ad-hoc distributed control algorithms and architectures derived from biological and geophysical systems and measurements of fabricated systems such as the World Wide Web. [16]<br />
<br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">Previous Chapter</a></div><div style="float: right; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">Next Chapter</a></div></div></div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com1tag:blogger.com,1999:blog-2212046057163067617.post-5489648338731694342011-03-29T01:08:00.000+05:302013-05-30T20:19:18.253+05:30Research projects in Autonomic computing.<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>3.1 Research projects in Autonomic computing</b></span><br />
<br />
Listed below are selections of brief descriptions of some of the projects underway at IBM. These projects are at different stages of development or progress. Some of them have already appeared in products. Some are just beginning. This list of projects will grow as new areas of research emerge.<br />
<br />
<b> 1. Gryphon: Pub/Sub (Middleware)</b><br />
<br />
This middleware for Publish/Subscribe is used to distribute large volumes of data/content in real time to thousands of clients distributed throughout a large "public" network, such as a wide area extranet or intranet that is too large or complex to be centrally administered to support specific applications.<br />
Gryphon has already been tested and deployed over the Internet for real-time sports score distribution at the U.S. Open, and Australian Open in tennis and Ryder Cup in golf, and for monitoring and statistics reporting at the Sydney Olympics. [4]<br />
<br />
<b>2. HWLM: Heterogeneous WorkLoad Management (Total System)</b><br />
<br />
Workload management, a function of the IBM OS/390 operating system base control program, allows installations to define business objectives for a clustered environment. This business policy is expressed in terms that relate to business goals and importance, rather than the internal controls used by the operating system. The IBM OS/390 ensures that system resources are assigned to achieve the specified business objectives. [17]<br />
<br />
<b>3. LEO: DB2's Learning Optimizer</b><br />
<br />
LEO is a comprehensive way to repair incorrect statistics and cardinality estimates from a query execution plan (QEP). By monitoring previously executed queries, LEO compares the optimizer's estimates with actual at each step in a QEP and computes adjustments to cost estimates and statistics that may be used during future query optimizations.<br />
In practice, LEO actually learns from its past mistakes such as accelerating, sometimes drastically, future executions of similar queries, while incurring a negligible monitoring overhead on query compilation and execution. [18]<br />
<br />
<b> 4. SMART: Self-Managing and Resource Tuning DB2 (Middleware)</b><br />
<br />
IBM will be building a SMART (Self-Managing and Resource Tuning) database into upcoming versions of DB2. This database is designed to reduce the human intervention needed to run and maintain a database. For example, the user can opt not to be involved and the database will automatically detect failures when they occur and correct them. The database will also configure itself by installing operating systems and data automatically to cope with the changing demands of e-business and the Internet.<br />
The long-term vision is to offer customers the option of preventative maintenance or zero administration/zero maintenance to reduce the total cost of ownership. LEO is one look at the future of "SMART" databases and how they will operate more effectively. [19]<br />
<br />
<b>5. Storage Tank</b><br />
<br />
Storage Tank is a new file system for storage area networks that is being developed at the IBM Almaden Research lab, located in Silicon Valley in California. Major features of this system include heterogeneous file sharing, policy-based file and storage management, high performance, and scalability. This technology is currently used in IBM's Tivoli's Storage Manager Product. [6]<br />
<br />
<b>6. UFiler: Facilitating Enterprise File Access/Sharing</b><br />
<br />
IBM developed and demonstrated the first Web-based enterprise file system solution with the UFiler project. This solution facilitates access and sharing of files that can be geographically distributed over an entire enterprise or the Internet. It allows access to files anytime and anywhere, and files are protected through fine-grained access-control lists. UFiler desktop clients allow applications to access files stored in UFiler as if they were on a local disk. WebDAV integration is prototyped to allow Windows users to access their UFiler files through WebFolder and other WebDAV-enabled applications such as Office 2000. UFiler's automated backup ensures the integrity of user data. UFiler's back-end design includes SAN-based server clustering. Failover and load balancing among servers can be achieved without moving data. [21]<br />
<br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">Previous Chapter</a></div><div style="float: right; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">Next Chapter</a></div></div>.</div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com0tag:blogger.com,1999:blog-2212046057163067617.post-6355331576658256662011-03-29T00:58:00.000+05:302013-05-30T20:19:18.256+05:30Major Researches about Autonomic Computing<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>2.0Major Researches about Autonomic Computing</b></span><br />
<br />
“IBM believes that we are at just such a threshold right now in computing. The millions of businesses, billions of humans that compose them, and trillions of devices that they will depend upon all require the services of the IT industry to keep them running. And it's not just a matter of numbers. It's the complexity of these systems and the way they work together that is creating a shortage of skilled IT workers to manage all of the systems. It's a problem that's not going away, but will grow exponentially, just as our dependence on technology has. In short, we can't keep computing as we have for years.<br />
<br />
But as Mr. Whitehead so eloquently put it nearly a century ago, the solution may lie in automation, or creating a new capacity where important computing operations can run without the need for human intervention. On October 15th, 2001 Paul Horn, senior vice president of IBM Research addressed the Agenda conference, an annual meeting of the preeminent technological minds, held in Arizona. In his speech, and in a document he distributed there, he suggested a solution: build computer systems that regulate themselves much in the same way our autonomic nervous system regulates and protects our bodies.’’ [15] This is a quotation from the research web site of the IBM about autonomic computing. It shows the idea of IBM about autonomic computing.<br />
<br />
According to the research of IBM about Autonomic Computing, they introduce eight basic characteristics the autonomic system should have.<br />
<br />
<b>To be autonomic, a computing system needs to “know itself”</b><br />
An autonomic system will need detailed knowledge of its components, current status, ultimate capacity, and all connections with other systems to govern itself. It will need to know the extent of its "ownership" of resources, they can borrow or lend, and those that can be shared or must be isolated.<br />
<br />
<b>An autonomic computing system must configure and reconfigure itself under different and unpredictable conditions.</b><br />
System configuration or “setup” must occur automatically, as must dynamic adjustments to that configuration to best handle changing environments.<br />
<br />
<br />
<b>An autonomic computing system always looks for ways to optimize its workings.</b><br />
Autonomic computing system should have capability of optimizing its tasks. Optimizing means it should prioritize the tasks and also it should use optimum path to complete the goal. And the autonomic system should have ability to manage it’s resources in other word s get more product by using less resources.<br />
<br />
<b>Autonomic computing system must be able to recover from extraordinary events that might cause some of its parts to malfunction.</b><br />
It must be able to discover problems or potential problems, then find an alternate way of using resources or reconfiguring the system to keep functioning smoothly.<br />
Initially, “healing” responses taken by an autonomic system will follow rules generated by human experts. But as we embed more intelligence in computing systems, they will begin to discover new rules on their own that help them use system redundancy or additional resources to recover and achieve the primary objective, completing the task.<br />
<br />
<br />
<b>An autonomic computing system must be an expert in self-protection.</b><br />
It must detect, identify and protect itself against various types of attacks to maintain overall system security and integrity.<br />
Before the Internet, computers operated as stand alone machines. So it was fairly easy to protect computer systems from attacks such as “viruses.”<br />
By mimicking the human immune system, autonomic system should have a “digital immune system” that can detect suspicious code, automatically send it to a central analysis center, and distribute a cure to the computer system. The whole process takes place without the user being aware such protection is in process.<br />
To deal with malicious attacks by hackers, intrusion systems must automatically detect and alert system administrators to the attacks.<br />
As the scale of computer networks and systems keeps expanding and the likelihood of hacker attacks increases, we will need to automate the process even further. There won’t be enough experts to handle each incident.<br />
<br />
<b>An autonomic computing system knows its environment and the context surrounding its activity, and acts accordingly.</b><br />
This is almost self-optimization turned outward; an autonomic system will find and generate rules for how best to interact with neighboring systems. It will tap available resources; even negotiate the use by other systems of its underutilized elements, changing both itself and its environment in the process.<br />
<br />
<b>An autonomic computing system can not exist in a hermetic environment.</b><br />
While independent in its ability to manage itself, an autonomic computing system must function in a heterogeneous world and implement open standards.<br />
<br />
<b>Autonomic computing system will anticipate the optimized resources needed while keeping its complexity hidden.</b><br />
This is the ultimate goal of autonomic computing: the marshaling of IT resources to shrink the gap between the business or personal goals of our customers, and the IT implementation necessary to achieve those goals, without involving the user in that implementation.<br />
<br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">Previous Chapter</a></div><div style="float: right; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">Next Chapter</a></div></div></div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com0tag:blogger.com,1999:blog-2212046057163067617.post-90690822211748194672011-03-29T00:48:00.000+05:302013-05-30T20:19:18.263+05:30Why need Autonomic Computing?<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: justify;">By reading this paper you can gain the knowledge about Autonomic Computing. I detailed it under the following sub topics.<br />
<br />
<a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting<br />
<a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a><br />
<br />
<span style="font-size: large;"><b>2.0 Why need Autonomic Computing?</b></span><br />
<br />
In the evolution of humans and human society automation has always been the foundation for progress. If human can handle one of his needs automatically, then he has free mind and resources to concentrate on another task. So step by step he can get ability to concentrate on more complex problems. For example few of people worry about harvesting the grain to grind the flour to bake bread; other people even eat bread but do not worry about producing they can simply buy it at a nearby store. Therefore they have relaxed mind for do another job. Farmer’s also having the benefit of autonomic by using machines for their work. It causes to save their time and cost and also increase the amount of harvest get by unit of land.[7].<br />
<br />
But computing systems have proved that evolution via automation also produces complexity as an unavoidable byproduct. Follow the evolution of computers from single machines to modular systems to personal computers networked with larger machines and an unmistakable pattern emerges. Compare with pervious machines incredible progress in almost every aspect of computing, for example microprocessor power up by a factor of 10,000, storage capacity by a factor of 45,000, communication speeds by a factor of 1,000,000 [7]. Along with that growth has become increasingly sophisticated architectures governed by software whose complexity now demands tens of millions of lines of code. Some operating environments weigh in at over 30 million lines of code created by over 4,000 programmers. [7]<br />
<br />
In fact, the growing complexity of the IT infrastructure threatens to undermine the very benefits information technology aims to provide. Until now the computer systems relied mainly on human intervention and administration to manage this complexity. When considering about current rates of expansion, there will not be enough skilled IT people to keep the world’s computing systems running. Even in uncertain economic times, still have high demand for skilled IT workers.<br />
<br />
Even if people could somehow come up with enough skilled people, the complexity is growing beyond human ability to manage it. As computing evolves, the overlapping connections, dependencies, and interacting applications call for administrative decision-making and responses faster than any human can deliver. Identifying root causes of failures becomes more difficult, while finding ways of increasing system efficiency generates problems with more variables than any human can hope to solve. Without new approaches, things will only get worse. To solve the problem people need computer systems with autonomic behavior.<br />
<br />
<div style="float: left; width: 600px;"><div style="float: left; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">Previous Chapter</a></div><div style="float: right; width: 200px;"><a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">Next Chapter</a></div></div><br />
</div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com1tag:blogger.com,1999:blog-2212046057163067617.post-12702432807500887722011-03-29T00:33:00.000+05:302013-04-06T15:25:42.664+05:30Introduction to Autonomic Computing<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<i><b>Abstract</b></i>: Autonomic computing is inspired by the human autonomic nervous system that has developed strategies and algorithms to handle complexity and uncertainties, and aims at realizing computing systems and applications capable of managing themselves with minimum human intervention.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwZFRhwLxxZRqSo5vEpF_1mEI_KIovkYN_14zbzx21Fr_OXMh3OdzWZKuhd3kpzDqEjOyr39fK4plyPQh6j3Z7kCmy9WD3S0Nv4Eu1fX1LrGuyPqcjxyw2Inejxj3-svj3RBU0GpNvk4bJ/s1600/autonomic-nervous-system.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwZFRhwLxxZRqSo5vEpF_1mEI_KIovkYN_14zbzx21Fr_OXMh3OdzWZKuhd3kpzDqEjOyr39fK4plyPQh6j3Z7kCmy9WD3S0Nv4Eu1fX1LrGuyPqcjxyw2Inejxj3-svj3RBU0GpNvk4bJ/s320/autonomic-nervous-system.gif" width="232" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Autonomic nervous system of human</td><td class="tr-caption" style="text-align: center;"></td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
By reading this paper you can gain the knowledge about Autonomic Computing. I will detail it under the following sub topics.<br />
<b><a href="http://hareenlaks.blogspot.com/2011/03/introduction-to-autonomic-computing.html">1.0 Introduction</a></b><br />
<b> <a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">2.0 Why need Autonomic?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/major-researches-about-autonomic.html">3.0 Major Researches </a></b><br />
<b> <a href="http://hareenlaks.blogspot.com/2011/03/research-projects-in-autonomic.html">3.1 Research projects in Autonomic computing.</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/university-research-projects-in.html">3.2 University research projects in autonomic computing</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/four-basic-elements-of-autonomic.html">4.0 Four basic elements of autonomic computing</a><br />
4.1self-configuring<br />
4.2self-healing<br />
4.3self-optimizing<br />
4.4 self-protecting</b><br />
<b> <a href="http://hareenlaks.blogspot.com/2011/03/comparison-of-current-computing-systems.html">AutonomicComputing Vs Current Computing</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-architecture.html">5.0 Autonomic computing architecture</a> <br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.0. Autonomic computing today</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/initiatives-of-autonomic-computing.html">6.1. Initiatives of autonomic computing </a></b><br />
<b> <a href="http://hareenlaks.blogspot.com/2011/03/benefits-of-autonomic-computing.html">6.2. Benefits</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/applications-of-autonomic-computing.html">6.3. Applications</a></b><br />
<b><a href="http://hareenlaks.blogspot.com/2011/03/what-happen-if-does-not-have-autonomic.html">7.0 What happen if does not have autonomic in the future?</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">8.0 Autonomic Computing Research Issues and Challenges</a><br />
<a href="http://hareenlaks.blogspot.com/2011/03/autonomic-computing-research-issues-and.html">9.0 Future direction of Autonomic computing</a></b><br />
<b><a href="http://hareenlaks.blogspot.com/2011/03/future-directions-of-autonomic.html">10.0 Conclusion</a></b><br />
<br />
<b><span style="font-size: large;">1. Introduction </span></b><br />
<br />
Think for a moment about one such system at work in our bodies, one so seamlessly embedded we barely notice it, the autonomic nervous system. It tells your heart how fast to beat, checks your blood’s sugar and oxygen levels, and controls your pupils so the right amount of light reaches your eyes as you read a book. It monitors your temperature and adjusts your blood flow and skin functions to keep it at 98.6ºF. It controls the digestion of your food and your reaction to stress; it can even make your hair stand on end if you are sufficiently frightened. It carries out these functions across a wide range of external conditions, always maintaining a steady internal state called homeostasis while readying your body for the task at hand[10].<br />
<br />
But most significantly, it does all this without any conscious recognition or effort on your part. This allows you to think about what you want to do, and not how you will do it.For example you can run for the train without having to calculate how much faster to breathe and pump your heart, or if you will need that little dose of adrenaline to make it through the doors before they close. It’s as if the autonomic nervous system says to you, don’t think about it. I have got it all covered. That precisely how we need to build computing systems, an approach we propose as autonomic computing.<br />
<br />
The term and technology of autonomic computing is unfamiliar to most IT people. However, it will become familiar and understood after reading this paper. Today, IT organizations are faced with the growing challenge of supporting the needs of the corporate enterprise with a reduced budgets and persistent or growing computing demands. For many enterprises, the challenge is compounded by complex architectures and distributed computing infrastructures that were developed over the last 20 years. This situation has caused system management costs to escalate while budgets and corporate spending are shrinking.<br />
<br />
Solving this problem requires a new computing model, one that allows for efficiencies in IT infrastructure and resources. Indeed one such model is now emerging. IBM calls it autonomic computing. This is a new methodology for managing enterprise computing environments. Autonomic computing is a new approach that enables software to operate intelligently and dynamically, basing decisions on IT policies and service requirements. Top hardware vendors, such as IBM, Microsoft, Hewlett Packard and others are looking at how to develop servers, operating systems and system management tools and services that encompass the fundamental requirements of autonomic computing.<br />
<br />
This paper describe about the autonomic computing by first describing the need of autonomic nature in section 2.0 and the major researches of autonomic computing in section 3.0. This section basically describe about the researches of IBM and the main characteristics introduce by them and finally about the research projects in Autonomic computing. Next section (4.0) about the four basic elements of autonomic computing, Self-configuring (4.1), Self-optimizing (4.2), Self-healing (4.3) and Self-protecting (4.4). Then you can get knowledge about the autonomic computing architecture in section 5.0, then about the current situation in autonomic computing in section 6.0, Autonomic computing today. Then section 7.0 describes the importance of autonomic computing by describing the situation if not having this sort of concept. Next section (8.0) is about autonomic computing research issues and challenges. After that you can see the future direction of autonomic computing in section 9.0. Then you can get the overall idea about autonomic computing by reading the conclusion part. So read carefully and get the clear idea.<br />
<br />
<br />
<div style="float: left; width: 600px;">
<div style="float: left; width: 200px;">
Previous Chapter</div>
<div style="float: right; width: 200px;">
<a href="http://hareenlaks.blogspot.com/2011/03/why-need-autonomic-computing.html">Next Chapter</a></div>
</div>
<br /></div>
</div>
Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com31tag:blogger.com,1999:blog-2212046057163067617.post-12177969443192773402011-03-26T18:12:00.000+05:302011-08-27T14:25:12.981+05:30Introduction to Hibernate<div dir="ltr" style="text-align: left;" trbidi="on"><span style="font-family: Verdana,sans-serif;"></span><br />
<div style="text-align: justify;"><span style="font-family: Verdana,sans-serif;">The objective of this article is to give introduction to hibernate. Note that in here I not give at least single bit of code but still you can get the idea about the Hibernate if you are a novel one. You can read details under the following subtopics. </span></div><ul style="text-align: left;"><li><span style="font-family: Verdana,sans-serif;">What is Hibernate?</span></li>
<li><span style="font-family: Verdana,sans-serif;">Advantages of Hibernate</span></li>
<li><span style="font-family: Verdana,sans-serif;">Disadvantages of Hibernate</span></li>
<li><span style="font-family: Verdana,sans-serif;">Suitability of Using Hibernate</span></li>
<li><span style="font-family: Verdana,sans-serif;">HQL</span></li>
<li><span style="font-family: Verdana,sans-serif;"> Story behind the name ‘Hibernate’</span></li>
</ul><b><span lang="EN"><span style="font-size: large;"><span style="font-family: Verdana,sans-serif;">What is Hibernate?</span></span></span></b><br />
<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPpfnE94TY2szPRZPKDLo-HgSE1bQ9vycAuqkSIrzKy-mWAyFVaXHJnrMF_RYCnNuIRg62oMB2XipXCablh0yZNpIEFAPn-n8fCGVPrdEPKYJoUOi2gC0z58ORCP6t64HtAD4JN2bEza3c/s1600/mages.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana,sans-serif;"><img border="0" height="88" r6="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPpfnE94TY2szPRZPKDLo-HgSE1bQ9vycAuqkSIrzKy-mWAyFVaXHJnrMF_RYCnNuIRg62oMB2XipXCablh0yZNpIEFAPn-n8fCGVPrdEPKYJoUOi2gC0z58ORCP6t64HtAD4JN2bEza3c/s320/mages.jpg" width="320" /></span></a></div><div style="text-align: justify;"><span style="font-family: Verdana,sans-serif;">According to the Wikipedia “Hibernate is an object-relational mapping (ORM) library for the Java language, providing a framework for mapping an object-oriented domain model to a traditional relational database. Hibernate solves object-relational impedance mismatch problems by replacing direct persistence-related database accesses with high-level object handling functions.” In other words, Hibernate combine both features of relational database model and the object-oriented model to enhance the functionalities of the language or enhance the capabilities of the language. We call it as object-relational mapping or ORM.</span></div><div style="text-align: justify;"><span style="font-family: Verdana,sans-serif;"><br />
By using Hibernate technology or Hibernate concept we can overcome the object-relational impedance mismatch problem. The object-relational impedance mismatch is a set of conceptual and technical difficulties that are often encountered when a relational database management system (RDBMS) is being used by a program written in an object-oriented programming language or style; particularly when objects or class definitions are mapped in a straightforward way to database tables or relational schemata. This practice has been recommended and documented by some object-oriented literature as a way to use databases in object-oriented programs. </span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">Hibernate's main feature is mapping from Java classes to database tables. Moreover, Hibernate provides data query and retrieval facilities & generates the SQL calls and attempts to relieve the developer from manual result set handling and object conversion and keep the application portable to all supported SQL databases with little performance overhead.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">Mapping Java classes to database tables is accomplished through the configuration of XML file or by using Java Annotations. When using an XML file, Hibernate can generate skeletal source code for the persistence classes. This is unnecessary when annotation is used. Hibernate can use the XML file or the annotation to maintain the database schema.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">Facilities to arrange one-to-many and many-to-many relationships between classes are provided. In addition to managing association between objects, Hibernate can also manage reflexive associations where an object has a one-to-many relationship with other instances of its own type.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">Hibernate supports the mapping of custom value types. This makes the following scenarios possible:<br />
• Overriding the default SQL type that Hibernate chooses when mapping a column to a property.<br />
• Mapping Java Enum to columns as if they were regular properties.<br />
• Mapping a single property to multiple columns.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">Hibernate provides transparent persistence for Plain Old Java Objects (POJOs). The name ‘POJO’ is used to emphasize that a given object is an ordinary Java Object, not a special object, and in particular not an Enterprise JavaBean.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">Now I think you know what Hibernate is and some basic features of Hibernate. Let’s consider some advantages of Hibernate. </span></div><div style="text-align: justify;"><b><span style="font-family: Verdana,sans-serif; font-size: large;">Advantages of Hibernate</span></b></div><div style="text-align: justify;"></div><div class="separator" style="clear: both; text-align: center;"><span style="clear: left; float: left; font-family: Verdana,sans-serif; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="172" r6="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYhYR6UUxHH7vPhM5kunaC1Q8TfOcZQ_vOOo5EodLRmSUaOoTLCu1eGQK8lBcEcKE6sWyjf-9gti323P42IpX3cj8qrMt1BqQrF38zaiNN4T4kNySm0AExL_x_-2qIzZbWu-QGU5oUcu2U/s200/untitled.bmp" width="200" /></span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">There are some advantages in Hibernate. I’m going to list them below.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Heterogeneity or database independent</b> - Hibernate can work with different databases without difficulty. Same code will work for all databases like ORACLE,MySQL ,SQLServer or any other. We need not to change Persistency code depending on DB but JDBC query must be data base specific.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Easy to learn</b> – In Hibernate TABLE treat as an Object so no need to learn SQL language.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>No Query tuning</b> - Don't need Query tuning in Hibernate. Hibernate automatically tuned query and return best result with performance If use Criteria Quires in Hibernate. But JDBC needs Query tuning.<br />
In query tuning, the main focus is to execute the existing queries with the best performance possible. By creating indexes, retrieving only the necessary columns and rows with correct where clauses, using indexed views, using pre-calculated values, spreading tables over multiple disks, etc., a given query's speed can be increased tremendously. However, there is a limit to the extent this can be achieved. After this, extra resources like more memory or faster disks can be added.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Supports automatic versioning</b>- Hibernate Supports automatic versioning of rows. Automatic versioning is a simple technique for assuring data integrity.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Cashe support</b>- Hibernate support two level of cache. Cause to enhance the performance.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Fast development</b> – Developer don’t need to write queries.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>No need connection pool</b> - A connection pool is a cache of database connections maintained so that the connections can be reused when future requests to the database are required. Connection pools are used to enhance the performance of executing commands on a database. Connection pooling also cuts down on the amount of time a user must wait to establish a connection to the database. But using Hibernate user can gain the advantage of connection pool automatically.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Easier to understand the system</b> – Because of the XML file all the relations between tables can be easily identify.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Can load objects on start up </b></span></div><b><br />
</b><span style="font-family: Verdana,sans-serif;"><b>• Easy to customize</b></span><br />
<div><br />
<span style="font-family: Verdana;">In deeply, but as a fresher you can jump over below bullets;</span><br />
<br />
<span style="font-family: Verdana;"><b>• Enhance productivity -</b> Improves the productivity by eliminating the JDBC tedious code and reducing No. of lines.</span><br />
<br />
<span style="font-family: Verdana,sans-serif;">• <b>Efficient Collection Handling</b> - Hibernate only ever inserts/updates/deletes collection rows that actually changed.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Caching objects</b>- The session is a transaction-level cache of persistent objects. User may also enable a JVM-level/cluster cache to memory and/or local disk.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Executing SQL statements later</b>- The session never issues an INSERT or UPDATE until it is actually needed. So if an exception occurs and you need to abort the transaction, some statements will never actually be issued. Furthermore, this keeps lock times in the database as short as possible (from the late UPDATE to the transaction end).</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Never updating unmodified objects</b>-It is very common in hand-coded JDBC to see the persistent state of an object updated, just in case it changed…..for example, the user pressed the save button but may not have edited any fields. Hibernate always knows if an object’s state actually changed, as long as user inside the same (possibly very long) unit of work.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Rolling two updates into one</b>-Hibernate can roll two seemingly unrelated updates of the same object into one UPDATE statement.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Updating only the modified columns</b>- Hibernate knows exactly which columns need updating and, if user chooses, will update only those columns.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Outer join fetching</b>- Hibernate implements a very efficient outer-join fetching algorithm! In addition, user can use subselect and batch pre-fetch optimizations.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Lazy collection initialization</b>.</span><br />
<span style="font-family: Verdana,sans-serif;"><br />
• <b>Lazy object initialization</b>- Hibernate can use runtime-generated proxies (CGLIB) or interception injected through bytecode instrumentation at build-time.</span></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><span style="font-family: Verdana,sans-serif; font-size: large;"><b>Disadvantages of Hibernate</b></span></div><div style="text-align: justify;"></div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><span style="clear: right; float: right; font-family: Verdana,sans-serif; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="186" r6="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOtKBejay-xOgsw2gKfvrC5EFYsOa-uHiQQ3mIFcMbpMSMw4ofa7rnJL9u_UK67lqpCMrifpFXA2Si7o6FgXNuTTFpWc8p6k9gLyTgc27f9kC2BEp7eOis14SvVF7etkS-ZyNLSSeJfZLL/s200/A4WMIZCAKVGTN6CA8Q99FGCASUQAZACA0A1FSZCA0Q8D2LCA18VN1NCAO6A3VPCA05XL5JCAJXRL2OCAQ5149BCACYHSZTCAUCLIQKCARWMEVOCAF4IZGSCARET9M5CALOB88OCADHDWAYCAVC1IBJ.jpg" width="200" /></span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">Any system or technology or concept can have disadvantages. Now I mention what are those in Hibernate.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Debugging</b>- Sometimes debugging and performance tuning becomes difficult.<br />
<br />
• <b>Slower than JDBC</b>- Hibernate is slower than pure JDBC as it is generating lots of SQL statements in runtime.<br />
<br />
• <b>Not suitable for Batch processing</b>- It advisable to use pure JDBC for batch processing.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Overhead</b>-Use of Hibernate is an overhead for the applications which are : simple and use one database that never change, need to put data to database tables, no further SQL queries and there are no objects which are mapped to two different tables. Hibernate increases extra layers and complexity. So for these types of applications JDBC is the best choice.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Difficult to maintain</b>-Anybody wanting to maintain application using Hibernate will need to know Hibernate.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Performance decreases in complex data</b>-For complex data, mapping from Object-to-tables and vice versa reduces performance and increases time of conversion.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Not allow all queries</b>- Hibernate does not allow some type of queries which are supported by JDBC. For example it does not allow inserting multiple objects to same table using single query. Developer has to write separate query to insert each object.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>High memory consumption</b>- Loading a large number of objects from the database which then reside in memory cause to waste the memory. One approach to resolving this is by using lazy loading, which has a few of its own caveats.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Difficulties in legacy databases</b>- Hibernate works best and easiest with a brand new database, attempting to use it on an existing legacy database can be quite a difficult task. </span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Learning difficulties</b> – In here you may mess with advantages. Note that it is quite easy to do the basics in hibernate but to really use hibernate well you need a good knowledge of ORM concepts, the way mappings and the session works and also more advanced concepts such as caching, lazy loading and fetching strategies.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">• <b>Performance optimization</b> -Trying to optimize performance at the database level is a bit trickier with Hibernate due to the fact the SQL that is executed is actually generated by Hibernate, hence user not able to just go in and adjust the SQL accordingly.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">Now Disadvantages also completed.<br />
<br />
<span style="font-size: large;"><b>Suitability of Using Hibernate</b></span></span></div><div style="text-align: justify;"><span style="font-family: Verdana,sans-serif;">“Why should choose Hibernate rather than other object-relational mapping techniques? “Is the problem which is going to address in this section. If you surf on cyber you can find several other object-relational mapping techniques such as EJB3 , Oracle Top Links , Cayenne , Open JPA , IBATIS,JPOX . In here you will understand the importance of Hibernate.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;"><b>Productivity, Maintainability, Portability</b>- As mentioned under advantages Hibernate provides all above Object-Relational benefits. Because Hibernate is combination of both object oriented model and relational database model. </span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;"><b>Free</b>- Hibernate is free and open source that is distributed under the GNU Lesser General Public License.<br />
Easy to learn – Recall from advantages Hibernate is totally object orientated concept. </span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;"><b>Code generation tool</b> - Hibernate tools provided by community helps developer generate or develop hibernate application very fast and easy. (Eclipse’s Plugin & Code generation tools)</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">So those reasons impact to use Hibernate in IT industry today.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif; font-size: large;"><b>HQL</b></span></div><div style="text-align: justify;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><span style="clear: left; float: left; font-family: Verdana,sans-serif; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="119" r6="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXezQh5GxiAY4J3Ivgo2JhlM5N3tC5m-_5oqncM4e1978nxzYAkozEktdlLH3E2xTvc2EfimUcXL9gZG6zokRuN7xpSxK9N9UG5zAb044n-tIXandpAp2KVMRzRkEXBzYmyiSeV2Aj9aC7/s320/di.jpg" width="320" /></span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">Hibernate Query Language or HQL for short is extremely powerful query language. HQL is much like SQL and are case-insensitive, except for the names of the Java Classes and properties. Hibernate Query Language is used to execute queries against database. Hibernate automatically generates the sql query and execute it against underlying database if HQL is used in the application. HQL is based on the relational object models and makes the SQL object oriented. Hibernate Query Language uses Classes and properties instead of tables and columns. Hibernate Query Language is extremely powerful and it supports Polymorphism, Associations, Much less verbose than SQL.</span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">There are other options that can be used while using Hibernate. These are Query By Criteria (QBC) and Query BY Example (QBE) using Criteria API and the Native SQL queries. </span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif; font-size: large;"><b>Story behind the name</b></span> </div><div class="separator" style="clear: both; text-align: center;"><span style="clear: right; float: right; font-family: Verdana,sans-serif; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" r6="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifMsr-wJAHRVwDWiKujb3FKbq28d-ollTIEuR0P0W98D0pcQhZqTVgBbofTSc0XHD4DU79SDhwynWRlSxMPvtnpkMGStOgDsUBu5LbQQOBRrLHtF-AfclKOT49GGj3we8rYBmV-29Zzc3V/s200/st.jpg" width="149" /></span></div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">The story behind the name of Hibernate (Actually it is not a story it is a fact.) In Hibernate “An object is sent to hibernation to a RDBMS, when it comes back (if it does) it wakes up from his hibernation. </span></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><br />
<span style="font-family: Verdana,sans-serif;">Now, as a novel you may know the basics about Hibernate. Nowadays Hibernate is very popular we can just Google to read about Hibernate and In addition, there are many books, communities and forums on Hibernate. Moreover, Java Market need Hibernate developers, demand of Hibernate developer is in decent growth and compare to the other tools. Hibernate working experience definitely add advantages for your future career. That is advantage of learning Hibernate. Welcome to Hibernate!</span></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><span style="font-family: Verdana,sans-serif;">You can leave a comment :)</span></div></div>Hareendra Lakshan Pererahttp://www.blogger.com/profile/11075489849463000665noreply@blogger.com17