You can have all the computer hardware money can buy, but if you don‘t have the right software, you can‘t do very much with the hardware and you've wasted a lot of money. There are five major themes in contemporary software platform evolution:

  1. Linux and open-source software
  2. Java
  3. Enterprise software
  4. Web services and service-oriented architecture
  5. Software outsourcing



Linux and Open-Source Software

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 is 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.


Open-source software isn‘t limited to Linux but includes applications such as Mozilla Firefox Web browser and free office suite software such as OpenOffice. is the result of over twenty years‘ software  engineering. Designed from the start as a single piece of software, it has a consistency other products cannot match.


Software for the Web: Java, AJAX, and HTML

Java is 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.


AJAX stands for Asynchronous JavaScript and XML. AJAX  is  a  new  technique for creating better, faster, and more interactive web applications with the help of XML, HTML, CSS, and Java Script. Conventional web applications transmit information to and from the sever using synchronous requests. It means you fill out a form, hit submit, and get directed to a new page  with new information from the server. With AJAX, when you hit submit, JavaScript will make a request to the server, interpret the results, and update the current screen. In the purest


sense, the user would never know that anything was even transmitted to the server. Simply we can say that AJAX is about updating parts of a web page, without reloading the whole page.


Hypertext markup language (HTML) is the language that used for creating web pages. The original version of HTML was created when the Web was first borne. It never took into account that eventually people would want to incorporate audio, video, and pictures within a Web page. More importantly, the authors of basic HTML language never envisioned that people would want to access the Web through small handheld devices, smartphones, tablets, and notebooks. As our computing hardware has evolved, so too must the software that provides information to all those devices. The next evolution of HTML is HTML5.

Web Services and Service-Oriented Architecture

Web services are XML-based information exchange systems that use the Internet for direct application-to-application interaction. These systems can include programs, objects, messages, or documents. Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks like the Internet in a manner similar to inter-process communication on a single computer. This interoperability (e.g., between Java and Python, or Windows and Linux applications) is due to the use of open standards. Four software standards and communication protocols provide easy access to data and information via Web services:

® XML—eXtensible Markup Language: Describes data in Web pages and databases.

® SOAP—Simple Object Access Protocol: Allows applications to exchange data and instructions.

® WSDL—Web Services Description Language: Describes a Web service so that other applications can use it.

® UDDI—Universal Description, Discovery, and Integration: Lists Web services in a directory so users can find them.


A service-oriented architecture (SOA) is architecture in computer software design in which application components provide services to other components via   a   communication   protocol,    typically    over    a    network.    The    principles of service-orientation are independent of any vendor, product or technology.


Software Outsourcing and Cloud Services

Like businesses were going to outside vendors to meet their hardware needs, Organizations are now doing much the same for their software needs. Three external sources for software outsourcing are: Software packages from a commercial vendor, cloud-based software services and tools, and outsourcing custom application development

® Software Packages and Enterprise Software: 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. Rather than design, write, test, and maintain legacy systems, many organizations choose to purchase software packages from other companies that specialize in certain programs. Enterprise software is large and complex software that includes content, collaboration, and communication software. These systems are so complex that few corporations have the expertise to develop these in house. Vendors such as SAP and PeopleSoft have developed powerful software packages that can support business processes such as customer relationship management, supply chain management, human resource management.


® Software Outsourcing: Outsourcing is a mechanism in which a firm contracts custom software development or maintenance to outside firms, normally to the 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. The Internet has made this option more viable than it ever was. Companies primarily outsource to reduce certain costs — such as peripheral or "non-core" business expenses, high taxes, high energy costs, excessive government regulation/mandates, production and/or labor costs. The incentive to outsource may be greater for U.S. companies due to unusually high corporate taxes and mandated benefits, like social security, Medicare, and safety protection


® Cloud-based Software Services and Tools: Small and mid-size companies in need of sophisticated software can rent only what they need and can afford through online software as a service (SaaS) providers. For instance, Right Now Technologies provides applications services via the Internet for customer service and marketing programs. Because these


services are Web-based, data are accessible from virtually any computer connected to the Internet. Workers can collaborate with others in distant offices through a Web-based SaaS, and no one has to worry about their files being compatible with others. There is some danger to outsourcing your information resources to this kind of service. Remember, all your data are stored on another company’s server computers and you have little control of it. What happens if the service provider goes out of business? How secure are data stored on the servers? These are just some of the issues managers must address when they consider using SaaS providers versus in-house technology support. Businesses must exercise caution when using software outsourcing or SaaS providers. Service level agreements (SLA) help protect both customers and the service providers.


Mashups and Apps

The  term mash-up  refers to  a  new breed  of Web-based  applications created by programmers to mix at least two different services from disparate, and even competing, Web sites. The term mash-up comes from the hip-hop music practice of mixing two or more songs. Mash-ups are often created by using a development approach called Ajax . Here's a sampling of mash-up Web sites:

® Panoramio : a mash-up of Google Maps and geopositioned photographs of locations

® Hiking Outpost : a mash-up of Amazon and online hiking information resources

® HousingMaps : a mash-up of Google Maps and Craigslist rental ads that displays geographical information for rental properties.


App is an abbreviated form of the word application, and are very  small programs that perform one particular task. They can be loaded to your hand- held computing device, including smartphones, e-book readers (in some cases) or tablet computers like the iPad. It‘s worth noting that most apps are developed for  a specific device or devices from a specific company. Apps that are written for the Apple company will run on any Apple device. However, apps written for an Apple device will generally not run on a device manufactured or sold by Samsung or a BlackBerry. More and more apps are being created for the business user that lets her access server documents, call up sales data from the corporate database, or schedule meetings with colleagues or customers.