".Net or Java?" was an ongoing debate in the early days of web services. But with the maturity of standards, integration of applications developed using these languages is no longer a key technical issue.
Yet development environments still play a critical role for integration at Cascade, a wholly owned PCCW subsidiary that provides technical services and systems for its parent company and regional / Hong Kong telcos. The company shifted its programming language from J2EE/CORBA into Microsoft's .Net in 2004, aiming to enable the integration between its ERP and its core operation system, the Project Control System (PCS).
"[The] PCS is one of our mission-critical systems," said Hong Kwok Fai, Cascade's assistant VP, Information Systems. "It automates the process in managing suppliers and contractors, as well as project coordination. Its integration with the ERP is essential for our operations."
Since PCCW used to be a government-owned utility, the process in selecting suppliers was closely monitored to prevent corruption. Developed in the 1970s, the PCS automates the supplier-tendering process and manages payments to reduce human error and interventions, said Hong.
The push factor
Telcos are confronted with an ever-changing business environment. "Our ERP changes continuously," said Hong. "To cope with these changes, our PCS also needs to be adjusted to ensure smooth integration."
When Cascade upgraded its ERP systems a few years ago, the integration with PCS became a major problem. After using J2EE/CORBA for almost seven years, various versions of the language were used within the application, which took lots of resources to build the integration with the new ERP, said Hong.
Besides integration with the internal systems, Cascade also encountered problems using J2EE as it developed applications for its clients. One of the main revenue streams of Cascade is to develop applications and engineering systems for other telcos in the region, including China and Southeast Asia.
Hong said that a couple of years ago, when the company was developing a smaller scale PCS for a China Mobile regional operation, they realized the traditional J2EE platform would also bump into the same integration problem.
"We thought of developing our own platform to enable the integration, but through various testing and trials we realized the integration is not as good as using a different programming language," he said.
.Net to the rescue
The programming language: Microsoft's .Net. Cascade then started to investigate a development platform replacement initiative from J2EE to .Net.
"Choice of platform is a fundamental decision," said Ric Shreves, Asia-based IT consultant. He noted key issues to consider include the internal process, the infrastructure, the licensing as well as the existing talents.
"When a shop makes a shift from J2EE to .Net, it entails some retooling of the infrastructure, but this is all quite manageable," he said. "Moving up the chain in importance is not only the licensing [and cost] implications, but also changes in the internal processes related to managing the development team and the builds."
The new platform might create lost cycles as the entire department moves to a new platform and struggles with frustrations attendant to changing basic toolsets, added Shreves.
Hong agreed with some of the challenges. Nevertheless, the frustrations involved were worth it for Cascade because of the other pull factors of .Net.
Speed-to-market was one of the major reasons for choosing .Net. Hong said one of Cascade's most popular services is the development of PCS, which holds business logics useful to other telcos.
"After the project of developing China Mobile's PCS, we realized .Net can speed up development time tremendously," he said. "In the past two years, we also tried to use .Net for our client's projects and the results were pleasing with a much shorter development-cycle time."
For the same command, the coding required in .Net could be one-tenth of Java, said Hong. Besides development, .Net is also faster and easier in de-bugging. "Timing is very important, particularly when we are developing systems for our clients," he said. "A shorter development time means lower cost and higher profit."
In addition to quantity, Hong noted .Net also brings quality to the applications. The final products developed on .Net platform can often better meet client's SLAs with fewer bugs and more quality developers are also available in the market.
Nevertheless, one of the hidden consequences of shifting development environment is the impact on the development team. "You can't just move a group of developers from J2EE to .Net; these are not complimentary skill sets," said Shreves. "You will lose people. You will lose good people."
He noted additional effort is also required to tap into the .Net community and pick up the required experience. That would require serious planning for the change as well as continuous screening and recruitment of team members.
Hong agreed that re-training Java programmers was a major initiative before the shift. Besides training Java programmers, various opportunities were also available in the past few years before Cascade replaced the PCS's development platform.
"Apart from the China Mobile project, last year when PCCW launched a series of new fixed-line residential services, many of the back-end support systems were developed by our team and they are .Net applications," he said.
By developing applications for other telcos using .Net, Hong said his team also built a stronger foundation before shifting the development environment of its core system. Meanwhile Cascade has also hired .Net developers to support the new platform.
"Our development center in Guangzhou has been recruiting .Net talent for some time, so it has not been a big issue in hiring .Net developers," he said. "On the other hand, we have experienced more difficulties in hiring Java developers."
"At this point in time .Net talent is probably easier to find than J2EE people," Shreves agreed. "Several years of aggressive training and certification programs by Microsoft have seeded the market with experienced personnel. Moreover, at the enterprise level, J2EE skills don't come cheaply."
Despite all the benefits, the decision for Cascade to implement a platform migration did not come easy.
"We needed lots of justification to make these changes and convince our management," said Hong. "One of the major concerns for the business executives was security."
As a well known telco, Cascade's profile could make it a prominent target for attack. That was what happened to the company a few years ago, when two SQL servers were under attack.
"Although the servers did not hold any significant data, the constant attacks and bombardment of traffic was very annoying and worrying to our management," he said.
The experience remained a worry for the executives at Cascade. Shreves also noted security is becoming a more critical issue on a Windows platform. As you may "expose your clients to the possibility of a wide variety of exploits, which are calculated to disrupt those systems," he said.
But Hong said the significant effort that Microsoft put to improve security has brought confidence to the company. "We have much more confidence on Microsoft's protection and the company provides us strong technical support," he said. "We think it's an appropriate move to take up .Net."
Another concern for .Net is its stability and capability to support large scale enterprise level applications. However from the experience with other projects, the application performance of .Net was very encouraging, said Hong.
"Like most organizations in the utility industry, our systems are critical and in larger scale," he said. Any flaws or errors can be easily detected because of the scale and number of users involved."
Sideways or upwards?
While J2EE and .Net remain two major development platforms, they are often seen as competing programming languages rather than complimentary ones.
"Frankly I see it [the shift from Java to .Net] as a move sideways," said Shreves.
Nonetheless for Cascade, the shift of programming language is considered as an upgrade.
"We have lots of J2EE and Java certified programmers, but we still changed to .Net, because we see it as an upgrade to the system," said Hong. "Of course the decision was not agreed to by everyone. But in a constantly changing telco industry, to meet the development time required, we needed a platform that could speed our development cycle."
He explained since the new development environment can achieve business goals better and improves the PCS performance, that's an upgrade.
"For the long-term, this language is the most economic solution for our business needs," he concluded. "We need quality applications to be developed at the shortest time with the least people, .Net comparatively is the best way to go for us.