v9 and iControl: The Next Step
by Joe Pruitt and Jeff Browning, F5 Networks


With the release of BIG-IP v9.0, F5 has taken a significant step forward with iControl to help developers quickly create faster performing applications across more leading development platforms. With this enhanced API and our commitment to helping developers use this technology to its fullest potential with resources such as F5 DevCentral, iControl now enables more productivity and performance than ever before.



iControl, released in the spring of 2003, is the first open API that enables applications to work in concert with the underlying network based on true software integration. Utilizing SOAP/XML to ensure open communications between dissimilar systems, iControl helps F5 customers, leading independent software vendors (ISVs), and Solution Providers realize new levels of automation and configuration management efficiency. Whether monitoring network-level traffic statistics, automating network configuration and management, or facilitating next generation service-oriented architectures, iControl gives organizations the power and flexibility to ensure that applications and the network work together for increased reliability, security, and performance. Further, iControl has proven itself as a valuable technology that can help reduce the cost of managing complex environments.

Significant enhancements to BIG-IP in the version 9.0 release boost its performance, security, extensibility, and reliability. Consequently, the SDK changed to accommodate the architectural changes present in the underlying system. Some objects have been eliminated and replaced with new, more intuitive counterparts. For instance, Node Servers are no longer managed as separate objects but are now configured as Pool Members. Additionally, objects (such as Virtual Servers) that used to be referenced only by IP addresses are now referenced by user friendly names, which eliminates the restrictions on having only one object per address.

Customer Feedback Paves the Way for Advanced Capabilities

In the past 3 years, our developers, partners, and customers provided valuable feedback through Customer Special Requests, Enhancement Requests, and on DevCentral.f5.com. When we originally designed the interfaces, our goal was to maintain ease of use while providing enough flexibility to manage F5 Networks devices using applications written in any programming language. We continue to enhance the SDK based on the feedback we receive, so that we can better meet your needs.

As our internal products change, the needs of our customers and the requirement driving their applications also change. Compared to 3 years ago, more customers are developing systems to manage large clusters of servers with constantly expanding configurations. While the original, granular format of our interfaces continues to work in this environment, it can be less than optimal for large scale management tasks. Feedback over the past year indicates that iControl applications can communicate too much on networks with large configurations because a multitude of API calls are required to complete a given task. While periodic updates helped address these issues in the 4.x family of products, we addressed these issues on a broad scale view in the 9.0 SDK release.

The broad view led us to change the overall design of the interfaces in the iControl SDK. Although methods still appear granular, every method is bulk enabled. This means that in the past if you had to enable 100 nodes, it required 100 methods, but bulk enabling can do the task using only one method! Internal testing has shown that this consolidation provides great benefits. We've found that the reduction in execution time for a given set of repetitive operations can be reduced by nearly 90% while reducing the required network bandwidth by the same percentage. Although, we cannot guarantee this level of performance boost for all languages or applications, we believe the changes in iControl SDK 9.0 can make your applications significantly faster and more scalable.

A significant additional enhancement to iControl is the introduction of a new Event API. This new extension to iControl provides a full Web services-based API for subscribing to BIG-IP system events - 46 specific types of events to specific. Applications can then subscribe to and consume these events for database logging or real-time "push" to other applications - even cell phones, pagers, or PDAs. The benefits of this Event API are that applications and integration can be done using standard development tools without the complexity of SNMP and it can offer proactive monitoring of key BIG-IP processes without repetitive iControl calls.

Migrating Existing Applications for Use With v9

Due to the change in the underlying architecture of BIG-IP, it is not possible to completely support applications written using version 4.5 of the SDK. It is also important to keep in mind that existing iControl applications developed for previous versions of BIG-IP will continue to work as developed. But, for customers that choose to migrate to v9 for it's revolutionary capabilities and want to continue using existing iControl applications will need to take some steps to migrate their applications to utilize them in a v9 environment.

Fortunately, we have made a significant effort to minimize the amount of effort required to migrate applications from v4.x to v9.  While we realize that this can cause some short term hardship for the existing apps out there, we believe the migration will be relatively quick and easy with the collection of resources F5 is providing to make the process a smooth one. Some of these resources include:

    • Migration Code Analyzer
      With the release of the SDK, we are providing a source code analyzer on DevCentral.f5.com that can scan all of the supported toolkits for method signatures, and provide a detailed report on possible migration issues. The detailed report provides a detailed list of which lines of code may have an issue AND provide a link to online versions of both v4.62 AND v9 SDKs for handy reference. Early feedback from customers and partners have been very supportive of this tool and we believe it will dramatically reduce any time required to migrate existing iControl applications.
    • Support for Legacy Methods
      We also include legacy (backwards compatible) support for a subset of our 4.x versions of our interfaces. After querying a number of customers and partners, we identified some of the most commonly used methods and provided mappings to the legacy API. These will be supported as deprecated methods and will live for 1 year after the release of BIG-IP v9.0 (per the standard iControl deprecation policy).
    • Technical Articles and Tips
      To help with migration to v9 as well as developing applications to run in mixed environments, we are providing a variety of technical articles that will help make it easier for developers to accommodate this change as quickly and easily as possible.
    • Sample Code
      Future sample applications will demonstrate how to query the system version and how to use the appropriate interfaces on the target platform.
    • Developer Assistance
      DevCentral Forums will continue to be a way for iControl developers to get direct contact with our internal development staff as well as other developers building iControl solutions. Technical support is also available via your normal F5 support channel.

Further, DevCentral will continue provide information and resources to keep you up to date on the latest tools, tips, and news regarding iControl SDK 9.0.

Make the Switch to v9 Today

With truly revolutionary features and performance, v9 is a significant step forward for how any organization chooses to secure, optimize, and direct any IP traffic. With the additional performance and functional iControl enhancements and extensive resources to assist with development and migration of existing applications, there are few reasons for not making the switch. Download the new SDK. Check out the technical articles. And, get to know v9 and iControl. It will change how you enable your applications to work cohesively with the most intelligent network technology ever created.