
March 1999
Object-Oriented Development In The Telecom Market: What
Does It Mean, And Why Should You Care?
BY BOB FIKE
The short answer to the above questions is that you need to care about object-oriented
(OO) development - and Java, as the development language of choice - because it is going
to change the software development landscape in the telecommunications market. When used
properly, Java and OO development enable developers to make the transition to a rapid,
high-quality software development environment that delivers cost-effective solutions that
can be easily and inexpensively evolved and maintained over time.
WHAT IS OO?
Object-oriented technologies offer companies a better way to write software, in which each
important element of the business is represented by an independent software object. These
objects cooperate with each other to form applications. Because each software object is
independent from other software in the system, objects developed for one project can be
reused in many projects, saving time and effort. Software built using object technologies
has built-in protection, so that changes made to one object will not ripple throughout the
system and cause bugs in unrelated areas. This independence also allows for the more
flexible, maintainable systems needed in a rapidly changing business environment.
WHAT ARE THE BENEFITS OF OO?
Since its discovery in 1965, Moore's Law has remained valid regarding the rapid
improvements in the price/performance of hardware. There has been no similar improvement
in software productivity, which has remained an art rather than a science. Object-oriented
technology is arguably the most exciting and least understood development in software
today. Object-oriented software construction promises many of the same benefits as modern
manufacturing: faster production, higher quality, and easier maintenance, all at reduced
cost. The object-oriented approach also leads to larger scale systems that organize
information more effectively and adapt more easily to changing needs.
Conventional programming is roughly on par with the craft approach of creating
automobiles at the turn of the century. Programs are expensive and time-consuming to
build, and their quality is highly dependent on the skills of the craftspeople involved.
Because each program is unique, standardization is very difficult and maintenance is a
major challenge for anyone other than the original developers. Object-oriented
programming, on the other hand, enables developers to design and reuse objects for current
and future applications. In a sense, it creates the foundations for a software assembly
line.
Object-oriented programming is often said to be more natural than traditional
programming, and this is true on a couple of different levels. On one level,
object-oriented programming allows us to organize information in ways that are familiar to
us. On another level, it uses techniques that hide complexity and make it easier to
understand what the application is doing.
As OO use continues within an organization, an ever-expanding class library is created.
This library provides a growing base from which to build new applications. It makes the
development effort much faster because all of the objects in the class library are
available for reuse. Because they have been used before, those objects have already gone
through the whole battery of tests to make sure the code is clean and error-free. Reuse of
existing objects results in higher quality software with fewer bugs. Finally, because of
the independence of the objects, evolution and maintenance of the application is easier
and less costly.
Object-oriented techniques enable rapid development and enhancement of systems to meet
the continuously changing demands of today's competitive environment. Flexibility, reduced
time to market, and cost-effective development are the hallmarks of a disciplined
object-oriented development effort.
WHAT IS JAVA?
Java is an object-oriented programming language designed around the idea that the software
should be built once and then expected to run on many different kinds of computers,
consumer gadgets, and other devices. With Java technology, you can use the same
application from any kind of machine - a PC, a Macintosh computer, a network computer, or
even new technologies like smart cards, digital phones, and Internet electronic commerce.
The idea is that Java-based software applications work just about everywhere - from the
smallest devices to supercomputers. Java technology components don't care what kind of
computer, phone, TV, or operating system they run on. They just work, on any compatible
device that supports the Java platform.
WHAT ARE THE BENEFITS OF JAVA?
Java, initially developed by Sun Microsystems, is now supported by a broad range of
equipment manufacturers including companies like IBM and Compaq. In addition, Microsoft
has added their support to their own version of Java. Capabilities that support
distributed computing, such as CORBA and COM/DCOM, are maturing so that they can provide
support for distributed-object computing in a way that will reinforce the strengths of
Java.
The Java platform's ease of development and widespread industry support mean lower
development costs and quicker time to market. Built-in security protects a company's
information and assets. The lightweight, distributed model eliminates software
installation headaches and lowers the cost of administering and maintaining a computing
network. Platform independence frees users to pick the hardware and operating system best
suited to their needs.
Businesses are using Java technology because it connects easily to existing computing
systems, lowers computing costs, and speeds software development. It also lets businesses
use the Internet to securely connect to their customers, suppliers, and partners.
Consumers benefit from Java technology because it brings personal, business, and
entertainment services to them - easily and securely - in many locations and on many
different appliances and devices at home, at work, and on the road.
Java started out as an effective tool for creating Web sites and Web-based
applications. As it matured, it became attractive to software architects as a means of
distributing powerful software functionality to the clients in a client/server
architecture. People have found that Java technology addresses many of today's most
pressing business computing problems, such as distributed computing, complexity,
incompatibility, security, and flexibility.
Furthermore, since Java programs can run on just about any type of computer and many
devices, a user's applications and data can be accessible from network computers on the
factory floor, desktop machines in the office, and laptops or other networked devices on
the road or in the field.
OO AND JAVA IN THE TELECOM WORLD
OO has been around for more than 20 years, but it wasn't until the late 1980s that serious
efforts began to transition the telecom industry to an object paradigm. As a result, the
vast majority of the systems developed to date have been built with a traditional
structured or procedural approach, using languages like C or COBOL, rather than using an
OO approach. C++ became a language with OO characteristics that was widely used in the
telecom market to begin this transition. However, C++ does not enforce an OO paradigm on
the developer. As a result, much of the C++ code that has been written doesn't really
adhere to the rules of the OO paradigm, and therefore it doesn't provide the benefits of
OO that accrue to those projects that adhere to these rules.
Starting with SmallTalk and continuing with Java, both of which require strict
adherence to the principles of OO, more companies are moving toward projects with a true
OO foundation. As a result, the promise of OO is starting to be realized in the
marketplace.
Java has suffered from a number of problems during its maturation. By far one of the
biggest problems has been fact that Java ran as an interpreted language, which made it
very slow. In mid-1997, there was a general feeling that Java was not ready for
mission-critical applications but was suited for Web sites and other non-mission-critical
applications. However, Just-In-Time compilers and Java chips have made tremendous changes
in Java's performance.
Numerous studies have demonstrated that Java applications perform at levels that meet
or exceed those of C and C++. In a study documented by Sun in JavaWorld in February 1998,
they found the following:
- The only significant performance differences between a Java program run with a JIT
compiler and a native C++ application were the amount of time it takes to perform the
initial translation of the class file and the types of optimization that were performed.
As predicted by the theoretical evaluation, Java with a JIT compiler performs precisely
like C++.
- Java provides three advantages over native C++ programming that will greatly reduce the
development time of and enhance the performance of large-scale applications: the reduction
of executable and resource size; the availability of consistent, robust libraries on most
platforms; the use of garbage collection to eliminate resource leaks.
Today, Java is being widely used in the telecom space for all aspects of customer care
and e-commerce related to the Internet. In addition, Java is increasingly being used for
operations support systems to provide inventory management, provisioning, and customer
care. Of even more interest are some of the promised applications that will use Java as
the platform for real-time call control. In one short year, Java has moved from being a
neat toy to the mainstream development environment for the future.
JAIN
The development of JAIN, Java Advanced Intelligent Networking, as a telecommunications
architectural framework is being sponsored by a consortium of companies, including a broad
mix of major telecommunications companies. The resulting efforts will provide Java-based
JAIN beans addressing services, protocols, management, and provisioning. For example,
ADC/NewNet and DGM&S are working with a number of companies to develop JAIN Protocol
Beans to provide interfaces to their SS7 protocol stacks. These interfaces provide access
to the ISUP, TCAP, and other SS7 protocol elements for call set-up and feature control.
Other companies are focusing on other aspects of the telecom space such as security,
transaction management, and provisioning, built around a concept called Java Dynamic
Management (JDM). JDM provides a JavaBean-compliant framework that enables management
intelligence to be built directly into the network using Java-based agent services.
JAVA IN THE CALL CENTER
If we look at one specific area of telecom, the benefits of Java can be seen clearly.
Web-site call connection services, built around the capabilities provided by Java, promise
to revolutionize the call center business. It is now possible to use voice over IP (VoIP)
technology to link a customer who is browsing a Web site with a customer service
representative from that company. This representative can answer questions or provide more
information about a product or service described on the Web site. This human touch, which
is often needed to close a sale, will add significant value to the company.
Companies such as 3Com have developed products that allow a "customer help"
button to be placed on a Web site. This button would launch a VoIP call from the company's
call center, whether that was a trouble desk or order entry center, to the customer. In
this way the service representative can answer questions, provide additional information,
push specific Web pages, take an order for a specific product, or initiate any number of
other service rep/customer interactions. Java has the ability to support the management of
the customer interaction now.
CALL CONTROL
Efforts are also underway to use Java to provide call control within the network. These
efforts are likely to lead to products that provide additional functionality in the form
of feature nodes for use in call centers. These feature nodes will be relatively low cost
boxes that provide network connectivity and feature control. These products could support
such capabilities as distributed call centers, telecommuting, and foreign language call
center support provided by distributed employees who have the required language as their
native tongue. They would provide call center control down to the individual level, so
agents could effectively work from their homes or from remote call centers on flexible
schedules. The system would have routing and agent management capability to handle agent
locations distributed around the globe, supporting load balancing, language skill resource
pooling, and other distributed call center capabilities.
The above are just a few examples of how Java is becoming a tool to leverage VoIP
technology and enable a myriad of new capabilities. CTI opportunities are exploding, and
OO techniques and Java implementations will provide a robust, adaptable environment to
take advantage of this wealth of new opportunities. Your competition will rely on them,
and your customers will expect them.
Bob Fike is the president of ObjectWave Corporation, as well as a senior member of
the IEEE and a member of the International Engineering Consortium's Executive Council.
ObjectWave provides business and technical consulting combined with comprehensive
object-oriented software engineering. They specialize in the design, development, and
deployment of custom business-driven software solutions for client/server, Web-based, and
e-commerce applications. For more information, please visit their Web site at www.objectwave.com.
|