New Opportunities and Challenges For Application Developers

Pushed by technological innovations and empowered by the rise of collaborative tools brought about by the ascendance of Web 2.0 technologies, application developers are facing a wide-open landscape to apply their skills.

Armed with tools such as AJAX and Ruby on Rails, and bolstered by the rise of software as a service, application developers have multiple venues to ply their trade, whether in Web-based applications, in the data center or within the local area network.

With the collaborative evolution of the Web as well as the enterprise, there has been a shift in the way application developers are approaching their work. They are more fully cognizant of the business impacts of their labor. With this knowledge in hand, application developers are moving further away from siloed job roles and closer to the strategic apex of their organizations.

Looking ForwardAs we speculatively look to the future of application development, we are able to identify several vectors for growth, but we’re convinced that one of the biggest potential areas for new applications is the acceleration of unified communications (UC) adoption.

Previously, voice and the Web lived in silos. For Web application developers to have the audacity to touch the telecom cabinet, they might be run out of the office. Now, with UC deployments gaining market share and the migration from copper to fiber well under way, these two previously independent worlds are rapidly colliding, spurring creative chaos and providing a brand new marketplace for applications development.

This new generation of telephony deployments will create a myriad of new opportunities for converged applications that will take advantage of new technology, transform business processes and create entirely new business models.

Key to the success of any of these applications is their ability to grow the business or reduce costs. Application developers must take advantage of tools that reduce development timeframes, employ an application life-cycle management strategy and ultimately deliver a supreme user experience.Migration and AccelerationThe initial wave of migrations to unified communications was largely driven by telephony cost savings through toll bypass and a reduction in total cost of ownership through network convergence and IP telephony. The next wave, which many customers are in now, is the acceleration of unified communications applications such as presence, mobility, collaboration and video to transform the way they do business and drive productivity to increase revenues. This represents a unique opportunity for application developers to build new applications that previously were not possible due to cost, complexity, tools or training.

The business desire for applications that integrate voice, video and data is not new. In fact, it was previously known as computer telephony integration, or CTI. However, as much as application service providers (ASPs) fell out of favor as software as a service (SaaS) gained momentum, there are fundamental differences powering the shift away from CTI.

It is important to realize that this is more than just acronym swapping – ASPs are now out in favor of SaaS because SaaS enables a broader shift toward Web 2.0 and its related technologies and architectures. The shift away from CTI to a more generic and powerful unified communications platform represents a new way of building, deploying and managing applications.

True unified communications platforms – powered by proper VoIP architectures – utilize and benefit from the maturation of standards such as SIP and the fusion of those standards with new Web development technologies such as AJAX, JSON and REST.

No longer is the telephony domain such a specialized island – application developers who understand the Web now can build applications that leverage communications to do new, interesting things. This enables organizations to further capitalize on their investments by deploying integrated applications across multiple departments and across the entire enterprise in a much more cost-effective manner.

Contrast this model to the old CTI model used for call centers, where developers were creating interactive voice response (IVR) and intelligent call routing rules (ICR) applications. These purpose-built applications relied on protocols such as CSTA, TAPI and JTAPI to integrate into a traditional time-division multiplexing environment and focused on call-center requirements, rather than the more generalized architecture and capability support applications used by all employees. Call-center applications built using these technologies were indicative of long development and deployment cycles, thus creating expensive solutions.

In fact, just to build one of these applications required uniquely specialized skill sets. Not only did developers have to be aware of how traditional telephony operated, a rarity for engineers raised on the Internet, but they also had to be experts with the specialized development tools required for the telephony domain.

The shift from a traditional CTI model to a more flexible and open unified communications platform created an environment ripe with opportunity and demand for a new breed of application developers. Those developers who are skilled in Web applications and understand the business criticality of real-time communications such as dial tone will be equipped with the skill sets needed to be successful in the new world of unified communications applications.

New Tools for New Unified Communications DevelopersOne option for developers to build feature-rich applications for their UC solutions is the Cisco Unified Application Environment. This tool allows developers to spend more time focusing on high-value intellectual property. It also allows customers to bring new applications to market faster, and it standardizes the deployment and management of applications to reduce total cost of ownership.

The Cisco Unified Application Environment delivers the following features to develop, deploy and manage unified communications applications:

A telephony protocol extraction framework and visual development environment that enables Web and enterprise developers, who lack telephony skills, to easily and rapidly develop feature-rich applications.

Automated test tools that perform functional, load, system and regression tests to reduce test cycles and increase the success rate of project completion.

A set of application life-cycle management tools that standardizes, centralizes and automates management of all unified communications applications.

Abstract implementation differences across products and versions to minimize interoperability challenges, so customers can upgrade their UC infrastructure without breaking their applications.

The ability to access the full features of UC implementations from a visual high level using tools such as Viseo, along with the ability to manipulate C+ code.

Future support for scripting languages such as Python and Ruby.

Case in PointOne example of a company realizing the business benefits of developing and deploying applications using Cisco Unified Application Environment can been seen at a management and technology consulting company that was using a Web-based application to reserve temporary office space for consultants as they travel between various offices and customer locations.

The application was successful in reserving office space, but did not have a feedback mechanism to determine if the space was in fact being used. To effectively measure the utilization rate, the company used Cisco Unified Application Environment to enhance the existing application. Now, when consultants arrive at their reserved space, they are required to log in to the Cisco Unified IP Phone.

This information is captured and used to determine actual office-space utilization. The company now leases spaces on actual-use data rather than inflated estimates, saving the company in excess of $1.5 million per year. As an added benefit, consultants also are more readily accessible to customers.

In another example, implementation of Unified Communications Application Development was undertaken by an early UC adopter, a global finance company.

Before deploying VoIP, the company’s analysts put together a list of customers affected by the day’s news. The analyst would then look up and dial the phone number of each customer. If the customer answered, the analyst would read the information to the customer on the phone. If the customer’s voice mail answered, the analyst would read the information to the customer’s voice-mail system. Then the analyst would look up the next customer’s phone number.

Analyst time is a valuable and expensive resource, and the company decided it could streamline this process, saving a considerable amount of its analysts’ time each day. It first set out to automate the generation of the customer lists using a BEA WebLogic server. Then, its custom application would auto-dial customers on the list through Cisco Unified Communications Manager.

If the customer answered, the analyst would read the information to the customer as before. If the customer’s voice mail answered, the application would automate playback of the information as a recorded message and immediately move on to auto-dial the next customer number, freeing the analyst from leaving recorded messages. The application could also record calls and store them in a database for reporting.

These two applications are just the tip of the iceberg for the emerging world of unified communications application development. With VoIP gaining greater market share and the plethora of tools now available to application developers, the evolution of this space will increase innovation and efficiency, reduce costs and create new pathways to collaboration and communication.