<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>iControl</title>
        <link>http://devcentral.f5.com/weblogs/macvittie/category/101.aspx</link>
        <description>All things iControl</description>
        <language>en-US</language>
        <copyright>Lori MacVittie</copyright>
        <managingEditor>l.macvittie@f5.com</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <item>
            <title>The death of SOA has been greatly exaggerated</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/21/the-death-of-soa-has-been-greatly-exaggerated.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheGreatSOADisasterof2008_2575/notdeadyet_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" height="159" alt="SOA: I'm not dead yet! " src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheGreatSOADisasterof2008_2575/notdeadyet_thumb.jpg" width="289" align="left" border="0" /&gt;&lt;/a&gt; Amidst the hype of cloud computing and virtualization have been the publication of several research notes regarding SOA. Adoption, they say, is slowing. &lt;/p&gt;  &lt;p&gt;Oh noes! Break out the generators, stock up on water and canned food! &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.javaworld.com/javaworld/jw-11-2008/jw-11-soa-in-a-slump.html"&gt;An article from&lt;/a&gt; &lt;a href="http://www.javaworld.com/"&gt;JavaWorld&lt;/a&gt; quotes research firm &lt;a href="http://www.gartner.com/"&gt;Gartner&lt;/a&gt; as saying: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheGreatSOADisasterof2008_2575/quote_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="16" alt="quote" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheGreatSOADisasterof2008_2575/quote_thumb.png" width="18" border="0" /&gt;&lt;/a&gt; The number of organizations planning to adopt &lt;a href="http://www.infoworld.com/event/soa/index.html"&gt;SOA&lt;/a&gt; for the first time decreased to 25 percent; it had been 53 percent in last year's survey. Also, the number of organizations with no plans to adopt SOA doubled from 7 percent in 2007 to 16 percent in 2008. This dramatic falloff has been happening since the beginning of 2008, Gartner said.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Some have reacted with much drama to the news, as if the reports indicate that SOA has lost its shine and is disappearing into the realm of legacy technology along with COBOL and fat-clients and CORBA. &lt;/p&gt;  &lt;p&gt;Not true at all. &lt;/p&gt;  &lt;p&gt;The reports indicate a drop in &lt;em&gt;adoption &lt;/em&gt;of SOA, not the &lt;em&gt;use &lt;/em&gt;of SOA. That should be unsurprising. At some point the number of organizations who have implemented SOA should reach critical mass, and the number of new organizations adopting the technology will slow down simply because there are fewer of them than there are folks who have already adopted SOA. &lt;/p&gt;  &lt;p&gt;As &lt;a href="http://devcentral.f5.com/weblogs/dmacvittie"&gt;Don&lt;/a&gt; pointed out when this discussion came up, the economy is factoring in heavily for IT and technology, and the percentages cited by &lt;a href="http://www.gartner.com/"&gt;Gartner&lt;/a&gt; are not nearly as bad as they look when applied to real numbers. For example, if you ask 100 organizations about their plans for SOA and 16 say "we're not doing anything with it next year" that doesn't sound nearly as impressive as 16%, especially considering that means that 84% &lt;em&gt;are &lt;/em&gt;going to be doing something with SOA next year. &lt;/p&gt;  &lt;p&gt;As with most surveys and polls, it's all about how the numbers are presented. Statistics are the devil's playground. &lt;/p&gt;  &lt;p&gt;It is also true that most organizations don't consider that by adopting or piloting cloud computing in the next year that they will likely be taking advantage of SOA. Whether it's because their public cloud computing provider requires the use of Web Services (SOA) to deploy and manage applications in the cloud or they are building a private cloud environment and will utilize &lt;a href="http://devcentral.f5.com/iControl"&gt;service-enabled APIs&lt;/a&gt; and SOA to &lt;a href="http://devcentral.f5.com/wiki/default.aspx/iControl/VMWareAutomation.html"&gt;integrate virtualization technology&lt;/a&gt; with &lt;a href="http://www.f5.com/products/big-ip"&gt;application delivery solutions&lt;/a&gt;, SOA remains an integral part of the IT equation. &lt;/p&gt;  &lt;p&gt;SOA simply isn't the paradigm shift it was five years ago. Organizations who've implemented SOA are still using it, it's still growing in their organizations as they continue to build new functionality and features for their applications, as they integrate new partners and distributors and applications from inside and outside the data center. As organizations continue to get comfortable with SOA and their implementations, they will inevitably look to governance and management and &lt;a href="http://www.f5.com/products/big-ip"&gt;delivery solutions&lt;/a&gt; with which to better manage the architecture. &lt;/p&gt;  &lt;p&gt;SOA is not dead yet; it's merely reached the beginning of its productive life and if the benefits of SOA are real (and they are) then organizations are likely to start truly realizing the return on their investments.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" width="18" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lmacvittie.tumblr.com/" border="0"&gt;&lt;img title="Follow me on Tumblr" height="18" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img title="Posterous" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" border="0" /&gt;&lt;/a&gt; &lt;a title="Subscribe using any feed reader!" href="http://www.addthis.com/feed.php?pub=lmacvittie&amp;amp;h1=http%3A%2F%2Fdevcentral.f5.com%2Fweblogs%2Fmacvittie%2FRss.aspx&amp;amp;t1="&gt;&lt;img height="18" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" border="0" /&gt;&lt;/a&gt; &lt;a title="Bookmark and Share" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=lmacvittie&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target="_blank"&gt;&lt;img height="18" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" border="0" /&gt;&lt;/a&gt;&lt;script src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~s/f5/XOwx" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;/p&gt;  &lt;hr width="100%" noshade="noshade" /&gt;  &lt;h6 class="zemanta-related-title" style="font-size: 1em"&gt;Related articles by Zemanta&lt;/h6&gt;  &lt;ul class="zemanta-article-ul"&gt;   &lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.nytimes.com/idg/IDG_852573C400693880002574DA006E1C0E.html?partner=rssnyt&amp;amp;emc=rss"&gt;HP puts more automation into SOA governance&lt;/a&gt;&lt;/li&gt;    &lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.vnunet.com/vnunet/news/2229706/soa-adoption-slowing-gartner"&gt;Gartner reports slowdown in SOA adoption&lt;/a&gt;&lt;/li&gt;    &lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.vnunet.com/computing/news/2228391/gartner-picks-tech-top-ten-2009"&gt;Gartner picks tech top 10 for 2009&lt;/a&gt;&lt;/li&gt;    &lt;li class="zemanta-article-ul-li"&gt;&lt;a href="http://www.infoworld.com/article/08/11/03/SOA_growth_projections_shrinking_1.html"&gt;SOA growth projections shrinking&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;div class="zemanta-pixie" style="margin-top: 10px; height: 15px"&gt;&lt;a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/75fa5eec-f7c1-44a8-be3a-72e3ddf697eb/"&gt;&lt;img class="zemanta-pixie-img" style="border-right: medium none; border-top: medium none; float: right; border-left: medium none; border-bottom: medium none" alt="Reblog this post [with Zemanta]" src="http://img.zemanta.com/reblog_e.png?x-id=75fa5eec-f7c1-44a8-be3a-72e3ddf697eb" /&gt;&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;   &lt;/p&gt;&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:10767f68-bfa2-4ab8-a3a5-e789b020e747" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/cloud%20computing" rel="tag"&gt;cloud computing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/virtualization" rel="tag"&gt;virtualization&lt;/a&gt;,&lt;a href="http://technorati.com/tags/integration" rel="tag"&gt;integration&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Gartner" rel="tag"&gt;Gartner&lt;/a&gt;,&lt;a href="http://technorati.com/tags/JavaWorld" rel="tag"&gt;JavaWorld&lt;/a&gt;,&lt;a href="http://technorati.com/tags/web%20services" rel="tag"&gt;web services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/architecture" rel="tag"&gt;architecture&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application%20delivery" rel="tag"&gt;application delivery&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application" rel="tag"&gt;application&lt;/a&gt;,&lt;a href="http://technorati.com/tags/blog" rel="tag"&gt;blog&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3798.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/21/the-death-of-soa-has-been-greatly-exaggerated.aspx</guid>
            <pubDate>Fri, 21 Nov 2008 11:09:37 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3798.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/21/the-death-of-soa-has-been-greatly-exaggerated.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3798.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3798.aspx</trackback:ping>
        </item>
        <item>
            <title>Automating scalability and high availability services</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/15/automating-scalability-and-high-availability-services.aspx</link>
            <description>&lt;p&gt;There are a lot of SOA governance solutions out there that fall into two distinct categories of purpose: one is to catalog services and associated security policies and the other is to provide run-time management for services, including enforcement of security and performance-focused policies. &lt;/p&gt;  &lt;p&gt;Vendors providing a full "SOA Stack" of functionality across the service lifecycle (design, development, testing, production) often integrate their disparate product sets for a more automated (and thus manageable) SOA infrastructure. But very few integrate those same products and functionality with the underlying network and application delivery infrastructure required to provide high-availability and scalability for those services. &lt;/p&gt;  &lt;p&gt;The question should (and must) be asked: why is that? &lt;/p&gt;  &lt;p&gt;Today's application delivery infrastructure, a.k.a. &lt;a href="http://www.f5.com/products/big-ip"&gt;application delivery controllers and load-balancers&lt;/a&gt;, are generally capable of integration via &lt;a href="http://devcentral.f5.com/iControl"&gt;standards-based APIs&lt;/a&gt;. These APIs provide complete control over the configuration and management of these platforms, making the integration of application delivery platforms with the rest of the SOA eco-system a definite reality. &lt;/p&gt;  &lt;p&gt;Most registry/repository solutions today offer the ability of external applications to subscribe to events. The events vary from platform to platform, but generally include some commonalities such as "artifact published" or "item changed". This means a listening application can subscribe to these events and take appropriate action when an event occurs. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/HowtoautomatescalabilityofSOAservices_A66D/automatingscalability_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" height="259" alt="automatingscalability" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/HowtoautomatescalabilityofSOAservices_A66D/automatingscalability_thumb.jpg" width="443" align="left" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;1. A new &lt;a href="http://www.w3.org/TR/wsdl"&gt;WSDL&lt;/a&gt; describing a service interface (hosted in the service application infrastructure) is published. &lt;/p&gt;  &lt;p&gt;2. The listening application is notified of the event and retrieves the new or modified WSDL. &lt;/p&gt;  &lt;p&gt;3. The application parses the WSDL and determines the appropriate endpoint information, then automatically configures the &lt;a href="http://www.f5.com/products/big-ip"&gt;application delivery controller&lt;/a&gt; to (a) virtualize the service and (b) load balance requests across applicable servers. &lt;/p&gt;  &lt;p&gt;4. The application delivery controller begins automatically load-balancing service requests and providing high-availability and scalability services. &lt;/p&gt;  &lt;p&gt;There's some information missing that has to be supplied either via discovery, policy, or manual configuration. That's beyond the scope of this post, but would certainly be a part of the controlling application. &lt;/p&gt;  &lt;p&gt;Conceptually, as long as you have (a) a service-enabled application delivery controller and (b) an application capable of listening for events in the SOA registry/repository, you can automate the process of provisioning high-availability and scalability services for those SOA services. &lt;/p&gt;  &lt;p&gt;If you combine this with the &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/30/how-to-instrument-your-java-ee-applications-for-a-virtualized.aspx"&gt;ability to integrate application delivery control into the application&lt;/a&gt; itself, you can provide an even more agile, dynamic application delivery infrastructure than if you just used one concept or the other. And when you get right down to it, this doesn't just work for SOA, it could easily work just as well for any application framework, given the right integration. &lt;/p&gt;  &lt;p&gt;There already exist &lt;a href="http://www.f5.com/solutions/technology-alliances/management/amberpoint.html"&gt;some integration of application delivery infrastructure with SOA governance solutions&lt;/a&gt;, like &lt;a href="http://www.amberpoint.com"&gt;AmberPoint&lt;/a&gt;, but there could be more. There could be custom solutions for your unique architecture as well, given that the technology exists to build it. &lt;/p&gt;  &lt;p&gt;The question is, why aren't folks leveraging this integration capability to support initiatives like SOA and cloud computing that require a high level of agility and extensibility and upon which the ROI depends at least partially on the ability to reduce management costs and length of deployment cycles through automation? &lt;/p&gt;  &lt;p&gt;It's true that there seems to be an increasing awareness of the &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/07/10/3438.aspx"&gt;importance of application delivery infrastructure to architecting a scalable, highly available cloud computing environment&lt;/a&gt;. But we never really managed to focus on the importance of an agile, reusable, intelligent application delivery infrastructure to the success of SOA. &lt;/p&gt;  &lt;p&gt;Maybe it's time we backtrack a bit and do so, because many of the same &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/17/3622.aspx"&gt;architectural and performance issues&lt;/a&gt; that will arise in the cloud due to poor choices in application delivery infrastructure are the same as those that adversely impact SOA implementations. &lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="316" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td style="color: white; background-color: #990000" valign="top" width="314"&gt;&lt;strong&gt;Related Links&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td style="border-right: #990000 1px solid; border-top: #990000 1px solid; border-left: #990000 1px solid; border-bottom: #990000 1px solid" width="314"&gt;         &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/08/19/3548.aspx"&gt;Why can't clouds be inside (the data center)?&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/09/3600.aspx"&gt;Governance in the Cloud&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/08/18/3544.aspx"&gt;Reliability does not come from SOA Governance&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/18/3627.aspx"&gt;Building a Cloudbursting Capable Infrastructure&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;&lt;a href="http://seekingalpha.com/article/99652-the-next-tech-boom-infrastructure-2-0"&gt;The Next Tech Boom: Infrastructure 2.0&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" width="18" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lmacvittie.tumblr.com" border="0"&gt;&lt;img title="Follow me on Tumblr" height="18" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img title="Posterous" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" border="0" /&gt;&lt;/a&gt; &lt;a title="Subscribe using any feed reader!" href="http://www.addthis.com/feed.php?pub=lmacvittie&amp;amp;h1=http%3A%2F%2Fdevcentral.f5.com%2Fweblogs%2Fmacvittie%2FRss.aspx&amp;amp;t1="&gt;&lt;img height="18" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" border="0" /&gt;&lt;/a&gt; &lt;a title="Bookmark and Share" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=lmacvittie&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target="_blank"&gt;&lt;img height="18" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" border="0" /&gt;&lt;/a&gt;&lt;script src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~s/f5/XOwx" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:354505f7-b63a-465a-b31e-67d4445e735e" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/cloud%20computing" rel="tag"&gt;cloud computing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/governance" rel="tag"&gt;governance&lt;/a&gt;,&lt;a href="http://technorati.com/tags/iControl" rel="tag"&gt;iControl&lt;/a&gt;,&lt;a href="http://technorati.com/tags/automation" rel="tag"&gt;automation&lt;/a&gt;,&lt;a href="http://technorati.com/tags/virtualization" rel="tag"&gt;virtualization&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application%20delivery" rel="tag"&gt;application delivery&lt;/a&gt;,&lt;a href="http://technorati.com/tags/web%20services" rel="tag"&gt;web services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/internet" rel="tag"&gt;internet&lt;/a&gt;,&lt;a href="http://technorati.com/tags/web" rel="tag"&gt;web&lt;/a&gt;,&lt;a href="http://technorati.com/tags/infrastructure" rel="tag"&gt;infrastructure&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3713.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/15/automating-scalability-and-high-availability-services.aspx</guid>
            <pubDate>Wed, 15 Oct 2008 12:37:16 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3713.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/15/automating-scalability-and-high-availability-services.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3713.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3713.aspx</trackback:ping>
        </item>
        <item>
            <title>How to instrument your Java EE applications for a virtualized environment</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/30/how-to-instrument-your-java-ee-applications-for-a-virtualized.aspx</link>
            <description>&lt;p&gt;If you're excited about the automation capabilities of cloud computing and virtualization, you are going to love this solution. In a virtualized environment where applications can ostensibly be popping up all over, and applications are no longer tied to specific servers, there is a need to automatically manage these application instances in a &lt;a href="http://www.f5.com/solutions/availability" target="_blank"&gt;high-availability&lt;/a&gt; (load balanced) environment. What you need is the ability to automagically add and remove application instances from the &lt;a href="http://www.f5.com/products/big-ip" target="_blank"&gt;application delivery controller&lt;/a&gt; (load balancer) so you don't have to worry about tying those applications down, which could reduce the benefits typically associated with virtualization. &lt;/p&gt;  &lt;p&gt;If you aren't going to a fully virtualized and automated data center, you might be happy to know that you can still reap the benefits of this automated solution. Not only is this solution perfect for a virtualized environment, it's also just as great for a non-virtualized environment for automating availability of applications. Truth be told, the application and the solution doesn't care (&lt;a href="http://devcentral.f5.com/weblogs/dmacvittie/archive/2008/09/29/whats-in-a-cloud-anyway.aspx" target="_blank"&gt;nor should it&lt;/a&gt;) whether it's running in a virtual image or not; it merely "is". &lt;/p&gt;  &lt;p&gt;In a nutshell, when an application initializes, it adds itself to the appropriate application pool on the application delivery controller. When the application is destroyed, it removes itself. This means no matter where the application instance is living - in a virtual image, in a different servlet container, on a new server - it will automatically be "discovered" and immediately become part of the high availability pool of servers. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/iControl" target="_blank"&gt;iControl&lt;/a&gt;, &lt;a href="http://www.f5.com" target="_blank"&gt;F5's&lt;/a&gt; service-enabled API providing configuration and management control of its solutions, can be used from within your Java EE application to enable automation of pool management on a &lt;a href="http://www.f5.com/products/big-ip" target="_blank"&gt;BIG-IP&lt;/a&gt; application delivery controller. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/HowtoinstrumentJavaEEappsforautodiscover_6349/java_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px" height="144" alt="java" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/HowtoinstrumentJavaEEappsforautodiscover_6349/java_thumb.jpg" width="144" align="left" border="0" /&gt;&lt;/a&gt; This solution uses the &lt;a href="http://java.sun.com" target="_blank"&gt;Java&lt;/a&gt; &lt;a href="http://java.sun.com/products/servlet/download.html" target="_blank"&gt;Servlet 2.3&lt;/a&gt; &lt;i&gt;ServletContextListener &lt;/i&gt;interface. The &lt;i&gt;ServletContextListener &lt;/i&gt;interface can be used to listen and react to a variety of servlet events, including application lifecycle. In order to automate the addition and removal of an application from the appropriate BIG-IP pool, we'll be listening for two events: &lt;i&gt;contextInitialized &lt;/i&gt;and &lt;i&gt;contextDestroyed. &lt;/i&gt;In the former, we'll add the application to the appropriate pool and in the latter, we'll remove it automatically. &lt;/p&gt;  &lt;p&gt;This proactive approach to managing applications managed by &lt;a href="http://www.f5.com/products/big-ip" target="_blank"&gt;BIG-IP&lt;/a&gt; &lt;a href="http://www.f5.com/products/big-ip/product-modules/local-traffic-manager.html" target="_blank"&gt;LTM (Local Traffic Manager)&lt;/a&gt; also ensures that requests are not caught in between a monitor's health check interval, which can result in either an error or a second connection as part of a retry event within an &lt;a href="http://devcentral.f5.com/iRules" target="_blank"&gt;iRule&lt;/a&gt;. This improves performance by ensuring that only active applications receive requests, and reduces connection attempts that can improve the efficiency of high-volume applications. &lt;/p&gt;  &lt;p&gt;This is also an excellent method of automating availability for applications for which synthetic monitors are problematic.  &lt;/p&gt;  &lt;p&gt;You can read about the &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=274" target="_blank"&gt;full solution with code in this article&lt;/a&gt;. Yes, they actually let me code from time to time. &lt;/p&gt;  &lt;p&gt;Happy coding! &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" width="18" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lmacvittie.tumblr.com" border="0"&gt;&lt;img title="Follow me on Tumblr" height="18" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img title="Posterous" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" border="0" /&gt;&lt;/a&gt; &lt;a title="Subscribe using any feed reader!" href="http://www.addthis.com/feed.php?pub=lmacvittie&amp;amp;h1=http%3A%2F%2Fdevcentral.f5.com%2Fweblogs%2Fmacvittie%2FRss.aspx&amp;amp;t1="&gt;&lt;img height="18" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" border="0" /&gt;&lt;/a&gt; &lt;a title="Bookmark and Share" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=lmacvittie&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target="_blank"&gt;&lt;img height="18" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" border="0" /&gt;&lt;/a&gt;&lt;script src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~s/f5/XOwx" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2c9193fd-c7c1-45db-9371-c310800003a6" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Java" rel="tag"&gt;Java&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Servlet" rel="tag"&gt;Servlet&lt;/a&gt;,&lt;a href="http://technorati.com/tags/iControl" rel="tag"&gt;iControl&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BIG-IP" rel="tag"&gt;BIG-IP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/context" rel="tag"&gt;context&lt;/a&gt;,&lt;a href="http://technorati.com/tags/iRules" rel="tag"&gt;iRules&lt;/a&gt;,&lt;a href="http://technorati.com/tags/development" rel="tag"&gt;development&lt;/a&gt;,&lt;a href="http://technorati.com/tags/architecture" rel="tag"&gt;architecture&lt;/a&gt;,&lt;a href="http://technorati.com/tags/automation" rel="tag"&gt;automation&lt;/a&gt;,&lt;a href="http://technorati.com/tags/management" rel="tag"&gt;management&lt;/a&gt;,&lt;a href="http://technorati.com/tags/cloud%20computing%20infrastructure" rel="tag"&gt;cloud computing infrastructure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/virtualization" rel="tag"&gt;virtualization&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3665.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/30/how-to-instrument-your-java-ee-applications-for-a-virtualized.aspx</guid>
            <pubDate>Tue, 30 Sep 2008 11:49:11 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3665.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/30/how-to-instrument-your-java-ee-applications-for-a-virtualized.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3665.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3665.aspx</trackback:ping>
        </item>
        <item>
            <title>iControl and Web 2.0</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/13/3255.aspx</link>
            <description>&lt;p&gt;There's a lot of things that &lt;a href="http://www.f5.com/products-big-ip" target="_blank"&gt;BIG-IP&lt;/a&gt; can do to improve the &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2007/11/19/2993.aspx" target="_blank"&gt;reliability&lt;/a&gt;, &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2007/11/12/2985.aspx" target="_blank"&gt;scalability&lt;/a&gt;, and &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/02/21/3086.aspx" target="_blank"&gt;performance&lt;/a&gt; of Web 2.0 applications. But there are always two sides to every story, and so it is with &lt;a href="http://www.f5.com/products-big-ip" target="_blank"&gt;BIG-IP&lt;/a&gt; and Web 2.0, or specifically, &lt;a href="http://www.f5.com/glossary/ajax.html" target="_blank"&gt;AJAX&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;This latest article, &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=218" target="_blank"&gt;Getting Started with iControl and AJAX&lt;/a&gt;, offers advice and code to get you started building a custom AJAX-based dashboard for BIG-IP. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Imbibing: Coffee&lt;/em&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0f306fa3-321d-40ff-bf23-1993dfea1c92" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/development" rel="tag"&gt;development&lt;/a&gt;,&lt;a href="http://technorati.com/tags/iControl" rel="tag"&gt;iControl&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BIG-IP" rel="tag"&gt;BIG-IP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AJAX" rel="tag"&gt;AJAX&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Web%202.0" rel="tag"&gt;Web 2.0&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3255.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/13/3255.aspx</guid>
            <pubDate>Tue, 13 May 2008 12:05:01 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3255.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/13/3255.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3255.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3255.aspx</trackback:ping>
        </item>
        <item>
            <title>iControl and PHP: Updated</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/09/3250.aspx</link>
            <description>&lt;p&gt;I'm working on something else that's sort of related to this subject and noticed that &lt;strong&gt;rpaan &lt;/strong&gt;polished the PHP code for this article on using &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=69" target="_blank"&gt;PHP and iControl&lt;/a&gt;. It's nice. Great stuff, &lt;strong&gt;rpaan, &lt;/strong&gt;and THANKS!&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Imbibing: Water&lt;/em&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:459e0d5c-29f6-4349-a794-bc8e55d102f3" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/iControl" rel="tag"&gt;iControl&lt;/a&gt;,&lt;a href="http://technorati.com/tags/PHP" rel="tag"&gt;PHP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/development" rel="tag"&gt;development&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3250.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/09/3250.aspx</guid>
            <pubDate>Fri, 09 May 2008 20:05:13 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3250.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/09/3250.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3250.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3250.aspx</trackback:ping>
        </item>
        <item>
            <title>What is iControl? And more importantly, what can I do with it?</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/02/19/3084.aspx</link>
            <description>&lt;p&gt;Over the past three weeks &lt;a href="http://devcentral.f5.com/weblogs/dmacvittie/"&gt;Don&lt;/a&gt; and I have had a lot of time to chat whilst making the trek back and forth between home and the hospital where the newest member of our family was keeping residence. Mostly we talked about our new son and speculating as to when he might be allowed to come home (Feb 17), but as is our wont we often ended up talking about work. That's one of the benefits of working "together" and in the same field, at least we think so. &lt;/p&gt; &lt;p&gt;One of those discussions revolved around iControl and the fact that it's really not as well known as &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=75"&gt;iRules&lt;/a&gt;. iRules is, of course, incredibly cool and because it's a dynamic, programmatic mechanism for manipulating traffic it's more, well, in your face than iControl. &lt;/p&gt; &lt;p&gt;iControl is also a dynamic, programmatic mechanism - it's just focused on management of F5's BIG-IP. iControl is a Web Services, a.k.a. SOA, enabled API that allows developers and admins control over their BIG-IP. Because it's SOA, there's no limitation on the programming - or scripting - language you can use to create your own customized management programs for a BIG-IP. &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=59"&gt;PERL&lt;/a&gt;, Java, .NET, C/C++, &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=53&amp;amp;view=topic&amp;amp;postid=7405"&gt;Python&lt;/a&gt;, &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=69"&gt;PHP&lt;/a&gt;. The power of web services means that iControl can be utilized via just about any language you're comfortable with. &lt;/p&gt; &lt;p&gt;Just knowing that iControl is a management API for BIG-IP is helpful, but the real question is almost always "but what can I &lt;em&gt;do&lt;/em&gt; with it?" Well, if you want to see &lt;em&gt;real &lt;/em&gt;examples, you can check out the &lt;a href="http://devcentral.f5.com/wiki/default.aspx/iControl.HomePage"&gt;iControl CodeShare&lt;/a&gt; here on DevCentral. If you're just looking for ideas, well, that's hard primarily because there's so many options and ideas are limited only by your own imagination. &lt;/p&gt; &lt;p&gt;You can create virtual servers, real servers, and pools of servers. You can change the status of a pool - enable or disable it - at will. You can write a script that automatically moves traffic from one server to another based on recurring maintenance windows. You can create iRules on the fly and apply them, or change the way traffic is handled with the click of a button. You can write a script that can be incorporated into a web dashboard to automatically monitor the status of objects such as virtual and real servers. You can build a real-time graphic chart of current connections and throughput rates. You can do just about anything you can think of. &lt;/p&gt; &lt;p&gt;There's more to iControl than just management in the sense that you can use it to integrate your BIG-IP with applications and even other devices. Using iControl you can integrate BIG-IP with your application and make decisions based on real-time conditions that are application or process specific. Need an example? Well, say your application processes &lt;em&gt;things. &lt;/em&gt;And let's say that you've got a service level agreement - or customer guarantee - that says you will process a &lt;em&gt;thing &lt;/em&gt;in a specified period of time. You know that some &lt;em&gt;things &lt;/em&gt;require longer to process than others, so you want to make sure that if a single server is handling one of those &lt;em&gt;things &lt;/em&gt;that it doesn't try to process another &lt;em&gt;thing &lt;/em&gt;until it's done. You could certainly write an iRule to recognize the situation and direct requests accordingly, but you could also do that using iControl from within your application. In many cases, it's actually more effecient to use iControl from within your application because it may be necessary to base your decision on information that can't be accessed via iRules, such as a information coming from a database lookup. &lt;/p&gt; &lt;p&gt;Integrating applications and other devices using iControl is something we do ourselves and that some of our partners do as well. For example, we've got a plug-in for &lt;a href="http://www.oracle.com"&gt;Oracle's&lt;/a&gt; &lt;a href="http://www.oracle.com/technology/products/oem/extensions/index.html"&gt;Enterprise Manager&lt;/a&gt; and &lt;a href="http://www.amberpoint.com"&gt;AmberPoint's&lt;/a&gt; &lt;a href="http://www.f5.com/solution-center/partner-showcase/amberpoint.html"&gt;SOA governance solution&lt;/a&gt;. To make using iControl even easier, our gurus on the &lt;a href="http://www.devcentral.com"&gt;DevCentral&lt;/a&gt; team have created a set of &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=53&amp;amp;forumid=26&amp;amp;postid=15814&amp;amp;view=topic"&gt;Java wrappers&lt;/a&gt; for iControl as well as &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=68"&gt;.NET and Java assemblies&lt;/a&gt;. I could go on and on about iControl because the possibilities are nearly infinite, but that would turn this blog post into a book. &lt;/p&gt; &lt;p&gt;So instead of reading &lt;em&gt;my &lt;/em&gt;ideas, check out the &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=76"&gt;iControl documentation&lt;/a&gt; on DevCentral and the &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=53&amp;amp;view=topics&amp;amp;forumid=1"&gt;forums&lt;/a&gt; for more ideas from our DevCentral team and real users of iControl and BIG-IP on how iControl can fit into your environment and make your life easier. &lt;/p&gt; &lt;p&gt;&lt;em&gt;Imbibing: Mountain Dew &lt;/em&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:5a65e155-e6a0-4b55-8b64-929e68dd5eb4" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;, &lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;, &lt;a href="http://technorati.com/tags/iControl" rel="tag"&gt;iControl&lt;/a&gt;, &lt;a href="http://technorati.com/tags/integration" rel="tag"&gt;integration&lt;/a&gt;, &lt;a href="http://technorati.com/tags/management" rel="tag"&gt;management&lt;/a&gt;, &lt;a href="http://technorati.com/tags/BIG-IP" rel="tag"&gt;BIG-IP&lt;/a&gt;, &lt;a href="http://technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/web%20services" rel="tag"&gt;web services&lt;/a&gt;, &lt;a href="http://technorati.com/tags/API" rel="tag"&gt;API&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3084.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/02/19/3084.aspx</guid>
            <pubDate>Tue, 19 Feb 2008 17:42:49 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3084.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/02/19/3084.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3084.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3084.aspx</trackback:ping>
        </item>
        <item>
            <title>Syndicate your BIG-IP</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2007/03/22/2796.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;Enhancing visibility through iRules and RSS&lt;/em&gt;&lt;/p&gt; &lt;p&gt;The business folks in your organization like to have visibility into every aspect of the business, including the disparate pieces of infrastructure that deliver the applications crucial to the company's bottom line. There are a number of ways in which you can provide visiblity into the delivery of those applications via &lt;a href="http://www.f5.com/products/bigip/"&gt;BIG-IP&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Yes, you could export logs and create charts in Excel, but that's not very real-time. You could also use the administrative domain features in v9.4 to give business owners view-only access to your BIG-IP so they can view the statistics themselves. &lt;/p&gt; &lt;p&gt;Another possibility (and much cooler in my opinion) is to provide an RSS feed via an iRule. Yes, I'm saying you can syndicate the performance of your BIG-IP. This provides an easy mechanism through which business and management stakeholders can monitor the performance and delivery statistics of their mission critical applications without you generating reports or requiring the stakeholders to bother IT for their credentials yet again. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;How to Set up an RSS Feed for your BIG-IP &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;First, find an appropriate URI that is unique that can return the RSS feed on your virtual server. For example, I chose "/rss". Then collect the appropriate statistics from the &lt;strong&gt;stats &lt;/strong&gt;profile and craft your RSS response. If you aren't familiar with RSS there are number of &lt;a href="http://www.rss-tools.com/rss-example.htm"&gt;sites&lt;/a&gt; that provide good examples for the most popular RSS format specifications (0.9, 0.91, 2.0). I like 2.0, but that's a matter of (sometimes hotly debated) opinion. &lt;/p&gt; &lt;p&gt;Here's a simple example of an RSS 2.0 feed: &lt;/p&gt;&lt;pre&gt;&amp;lt;?xml version="1.0"?&amp;gt; &lt;/pre&gt;&lt;pre&gt;  &amp;lt;rss version="2.0"&amp;gt; &lt;/pre&gt;&lt;pre&gt;      &amp;lt;channel&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;title&amp;gt;BIG-IP Statistics&amp;lt;/title&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;link&amp;gt;http://myvirtualip.com/&amp;lt;/link&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;description&amp;gt;Statistics for My Virtual Server&amp;lt;/description&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;item&amp;gt; &lt;/pre&gt;&lt;pre&gt;            &amp;lt;title&amp;gt;Current Connections&amp;lt;/title&amp;gt; &lt;/pre&gt;&lt;pre&gt;            &amp;lt;description&amp;gt;12345&amp;lt;/description&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;/item&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;item&amp;gt; &lt;/pre&gt;&lt;pre&gt;            &amp;lt;title&amp;gt;Total Requests&amp;lt;/title&amp;gt; &lt;/pre&gt;&lt;pre&gt;            &amp;lt;description&amp;gt;456781919&amp;lt;/description&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;/item&amp;gt; &lt;/pre&gt;&lt;pre&gt;      &amp;lt;/channel&amp;gt; &lt;/pre&gt;&lt;pre&gt;   &amp;lt;/rss&amp;gt;&lt;/pre&gt;
&lt;p&gt;You'll of course want to modify the titles, and if you really get crazy RSS 2.0 includes the ability to embed images as well. You can use iRules to gather virtual server specific information such as its name, active members, etc... as well, so you can really customize the heck out of the feed. &lt;/p&gt;
&lt;p&gt;You can put whatever statistics you think are relevant from the statistics profile, and just because we like flexibility you can even create custom statistics profiles and report on more application specific statistics. &lt;a href="http://devcentral.f5.com/weblogs/Joe/"&gt;Joe&lt;/a&gt; wrote a great &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=66"&gt;tech tip on retreiving statistics from your BIG-IP using iRules&lt;/a&gt; that is a great place to start checking out the possibilities. His examples include the ability to reset the statistics, and outputs in HTML, but the concept is the same. &lt;/p&gt;
&lt;p&gt;This iRule itself is pretty simple, Joe's includes the ability to process several reporting-specific URIs so you could modify his example to support multiple syndication formats based on the URI.  &lt;/p&gt;&lt;pre&gt;when HTTP_REQUEST {&lt;/pre&gt;&lt;pre&gt;   set uri [HTTP::uri]&lt;/pre&gt;&lt;pre&gt;   if { $uri starts_with "/rss"} {&lt;/pre&gt;&lt;pre&gt;       # get the statistics you want to report &lt;/pre&gt;&lt;pre&gt;       HTTP::respond 200 " ** output the RSS format of choice with the statistics ** "&lt;/pre&gt;&lt;pre&gt;   }&lt;/pre&gt;&lt;pre&gt;}&lt;/pre&gt;
&lt;p&gt;Go on, syndicate your BIG-IP. Your enterprise stakeholders will thank you for it. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Imbibing: Mountain Dew&lt;/em&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:cd751ec7-d123-4729-a9d6-96346f1f48fe" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;, &lt;a href="http://technorati.com/tags/BIG-IP" rel="tag"&gt;BIG-IP&lt;/a&gt;, &lt;a href="http://technorati.com/tags/application%20delivery" rel="tag"&gt;application delivery&lt;/a&gt;, &lt;a href="http://technorati.com/tags/XML" rel="tag"&gt;XML&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Web%202.0" rel="tag"&gt;Web 2.0&lt;/a&gt;, &lt;a href="http://technorati.com/tags/iRules" rel="tag"&gt;iRules&lt;/a&gt;&lt;/div&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/2796.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2007/03/22/2796.aspx</guid>
            <pubDate>Thu, 22 Mar 2007 22:04:41 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/2796.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2007/03/22/2796.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/2796.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/2796.aspx</trackback:ping>
        </item>
    </channel>
</rss>