Software Platform Trends and Emerging Technologies
There are five major themes in contemporary software platform evolution:
Open-source software is software produced by a community of several hundred thousands of programmers around the world, and is available free of charge to be modified by users, with minimal restrictions. The premise that open-source software is superior to commercial software is based on the ability of thousands of programmers modifying and improving the software at a much faster rate. In return for their work, programmers receive prestige and access to a network of other programmers, and additional for-pay work opportunities. The process of improving open source software is monitored by self-organized, professional programming communities. Thousands of open-source programs, ranging from operating systems to office suites, are available from hundreds of Web sites.
- Linux and open-source software
- Enterprise software
- Web services and service-oriented architecture
- Software outsourcing
Linux, an operating system related to Unix, is one of the most well-known open-source software, and is the world's fastest growing client and server operating system, along with related Linux applications. The rise of open-source software, particularly Linux and the applications it supports, has profound implications for corporate software platforms: cost reduction, reliability and resilience, and integration, because Linux works on all the major hardware platforms from mainframes to servers to clients. Because of its reliability, low cost, and integration features, Linux has the potential to break Microsoft's monopoly of the desktop.
Java, an operating system-independent, object-oriented programming language, has become the leading programming environment for the Web, and its use has migrated into cellular phones, cars, music players, and more.
For each of the computing environments in which Java is used, Sun has created a Java Virtual Machine that interprets Java programming code for that machine. In this manner, the code is written once and can be used on any machine for which there exists a Java Virtual Machine. A Macintosh PC, an IBM PC running Windows, a Sun server running Unix, and even a smart cellular phone or personal digital assistant can share the same Java application.
Java is typically used to create small Web programs called applets, but is also a very robust language designed to handle text, data, graphics, sound, and video. Java enables PC users to manipulate data on networked systems using Web browsers, reducing the need to write specialized software. A Web browser is an easy-to-use software tool with a graphical user interface for displaying Web pages and for accessing the Web and other Internet resources.
Software for enterprise integration is one of the most urgent software priorities today for U.S. firms who need to integrate existing legacy software with newer technology. Replacing isolated systems that cannot communicate with enterprise software is one solution; however, many companies cannot simply jettison essential legacy mainframe applications. Some integration can be achieved by middleware, software that creates an interface or bridge between two different systems. Firms increasingly purchase enterprise application integration (EAI) software that enables multiple systems to exchange data through a single software hub.
Web services, loosely coupled software components that use Web communication standards, can exchange information between different systems regardless of operating system of programming language. Web services technology is founded on Extensible Markup Language (XML). XML was developed as a more powerful markup language than Hypertext Markup Language (HTML), a page description language specifying how content appears on Web pages. By marking data with XML tags, computers can interpret, manipulate, and exchange data from different systems.
FIGURE 5-12 ENTERPRISE APPLICATION INTEGRATION (EAI) SOFTWARE VERSUS
EAI software (a) uses special middleware that creates a common platform with which all applications can freely communicate with each other. EAI requires much less programming than traditional point-to-point integration (b).
Web services communicate through XML messages over standard Web protocols, such as:
Using these protocols, a software application can connect freely to other applications without custom programming for each different application with which it wants to communicate. The collection of Web services used to build a firm's software systems constitutes a service-oriented architecture (SOA). SOA is an entirely new way of developing software for a firm. In the past, separate applications were written for different divisions and tasks and could not communicate with each other. In an SOA environment, a single application can be used and reused as a "service" that can be used by other services. For example, an "invoice service" can be written that is the only program in the firm responsible to calculating invoice information and reports. Virtually all major software vendors provide tools and entire platforms for building and integrating software applications using Web services.
Other software trends include:
FIGURE 5-13 HOW DOLLAR RENT A CAR USES WEB SERVICES
Dollar Rent A Car uses Web services to provide a standard intermediate layer of software to “talk” to other companies’ information systems. Dollar Rent A Car can use this set of Web services to link to other companies’ information systems without having to build a separate link to each firm’s systems.
Web 2.0 refers to "the new Web applications" like those above and is also the name of an annual conference. Web 2.0 can be described also as an expression of all the changes above, plus changes in the way people and business use the Web and think about human interaction on the Web. These changes include seeing the Web applications as services, not packaged software, seeing users as co-developers, harnessing collective intelligence, and lightweight user interfaces, development models, and business models.
- Web-based applications: Software firms are delivering software services over the Web to client computers and their customer's sites. Google's Google Apps for Your Domain is a Web-based suite of productivity tools, including online spreadsheet, word processing, and calendars, aimed at small businesses.
- Mashups: Part of a movement called Web 2.0, and in the spirit of musical mashups, Web mashups combine the capabilities of two or more online applications to create a kind of hybrid that provides more customer value than the original sources alone. For example, housingmaps.com can display real estate listings in local areas from Craigslist.com overlaid on Google Maps, with pushpins showing the location of each listing. The result of these techniques is that instead of the Web being a collection of pages, it becomes a collection of capabilities, a platform where thousands of programmers can create new services quickly and inexpensively.
Although traditionally businesses developed unique software themselves, today most new software is purchased from external sources. There are three external sources for software:
- Commercial software packages
- Software services from an application service provider (ASP)
- Outsourcing application development to an outside software firm
A commercial software package is a prewritten set of software programs for certain functions, eliminating the need for a firm to write its own software program. Enterprise systems are so complex that few corporations have the expertise to develop these in house and instead rely on enterprise software packages from vendors such as SAP and PeopleSoft.
FIGURE 5-14 THE CHANGING SOURCES OF SOFTWARE
U.S. firms will spend nearly $340 billion on software in 2006. Over 30 percent of that software will
come from outsourcing its development and operation to outside firms, and another 15 percent will
come from purchasing the service from application service providers either on the Web or through traditional
Sources: Authors estimates; Bureau of Economic Analysis, 2006; IT Spending and Trends, eMarketer, 2004; IT Spending and
Trends, eMarketer, 2005; SEC 10K statements, various firms.
An application service provider (ASP) is a business that delivers and manages applications and computer services from remote computer centers to multiple users using the Internet or a private network. The software is paid for typically on a per-user, subscription, or per-transaction basis. Renting enterprise software avoids the expense and difficulty of installing, operating, and maintaining the hardware and software needed for complex systems.
Large and medium-sized businesses are using ASPs for enterprise systems, sales force automation, or financial management, and small businesses are using them for functions such as invoicing, tax calculations, electronic calendars, and accounting. Application service providers also enable small and medium-sized companies to use applications that they otherwise could not afford.
In outsourcing, a firm contracts custom software development or maintenance to outside firms, frequently firms operating in low-wage areas of the world. With the growing sophistication and experience of offshore firms, more and more new-program development is outsourced.