TMCnet - World's Largest Communications and Technology Community
New Coverage :  Asterisk  |  Call Recording  |  SIP Trunking  |  Fax Software  |  Load Balancer  |  PBX  |  SIP Phones  |  Small Cells
 
| More

Developer.GIF (5781 bytes)
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.


OO At A Glance

So how does Java compare to other programming languages? The following is a summary of Java and some of the other development environments that fall into the object-oriented category.

Briefly, Java is a pure, innovative OO language that allows programs to be embedded in Internet Web pages, as well as run on any machine independently. Java is very portable when compared to other languages and manages to avoid many of the difficulties and complications that are inherent in other OO dialects.

C++ is a hybrid OO language based heavily on C but with improved type checking and extensions to support OO programming. Efficiency is obtained at the cost of some design flexibility. It allows considerable latitude in conforming to object-oriented methodology, sometimes regarded as a flaw as much as an advantage.

SmallTalk is a pure, interpreted OO language with a garbage collection feature for memory management. SmallTalk that is noted for its development environment and extensive class library. Such a language is ideal for rapid development of prototypes and cross platform implementations. At code level, the syntax is extremely concise when compared to its OO counterparts. It requires strict adherence to object-oriented methodology.

ActiveX is a loosely defined set of technologies derived from Microsoft's OLE and COM technologies. It is not a programming language or OO, per se, but rather a set of rules for how applications should share information. Similar to Java applets, ActiveX controls can be automatically downloaded and executed by a Web browser. For obvious reasons, it is most effective when run in a Windows-based environment.

Visual Basic is based on the BASIC language, and it was one of the first products to provide a graphical programming environment and a paint metaphor for developing user interfaces. A substantial amount of code can be added by simply dragging and dropping controls and then defining their appearance and behavior. It is not a true OO language but is reliant on the philosophy. For Windows-based applications, it enables programmers to quickly build prototype applications.


Upcoming Events

October 2- 5, 2012
The Austin Convention Center
Austin, Texas
October 3- 5, 2012
The Austin Convention Center
Austin, Texas
October 3- 5, 2012
The Austin Convention Center
Austin, Texas

DevCon5 provides you with the information and tools you need to exploit the capabilities of revolutionary HTML5 technology
View all >>

Subscribe FREE to all of TMC's monthly magazines. Click here now.