11.1 Software Platform Trends and Emerging ...


Figure 11.1 illustrates a number of trends in software platforms and systems that include:
Open Source software,
Java and Object-Oriented Programming,
Enterprise Software,
Web Services
and Service-Oriented Architecture.

11.1 Software Platform Trends and Emerging ...


Figure 11.1 Software Platform Trends

11.1 Software Platform Trends and Emerging ...


Open-Source Software
Open-source software is developed by a community of programmers worldwide.
Such software is distributed under a free license that allows organizations and users to copy, alter and redistribute the software.
A widely used example of open source software is Linux, an open source operating system.
The Mozilla Firefox web browser is an example of a popular open source application.
The use of open source software in an organization can offer a number of advantages including:
Total Control: as the software can be adapted to the organization’s specific business needs.
Minimal Cost: as the organization can obtain a free license to use the software. The organization has to only pay for staff training and software maintenance.
Reliability: as open source software is developed publicly, its code undergoes detailed evaluation and testing by the community of developers working on it, thus enhancing its reliability.


11.1 Software Platform Trends and Emerging ...


Java & the OOP Paradigm
Java is a widely used programming language that is used to develop software systems and applications running on many electronic devices and computing systems.
It is a portable and platform-independent language.
A Java program can be executed on multiple platforms with no alteration on its code.
The Java byte code and the Java Virtual Machine (JVM) are central to the Java Language portability.
As illustrated in Figure 11.2, when a Java source code is compiled, a Java byte code is generated which is independent of any specific machine language.
For a platform to support Java programs, it must provide an implementation of a JVM environment which translate Java Byte code to specific machine code.
E.g., as illustrated in Figure 11.2, the Windows JVM translates Java byte code to machine instructions that can be executed on Windows platforms.
The same Java program can be executed on Linux using its JVM.

11.1 Software Platform Trends and Emerging ...


Figure 11.2: Java Program Portability

11.1 Software Platform Trends and Emerging ...


The Java programming language follows the Object-Oriented Programming (OOP) paradigm.
A OOP software system is composed of a set of objects, each modeling a real world object.
Each object encapsulates data and a number of operations that manipulate such data.
OOP ensures modular design with each object containing its internal working state and operations making it easy to decouple the object from the rest of the system.
This modularity feature allows developers to easily modify and extend OOP software systems.
OOP also supports code reuse allowing the same object to be used in different software systems.

Enterprise Software
Traditionally, software applications are connected to each other through predefined interfaces as illustrated in Figure 11.2.
A new trend is to have a focal point that connects all software applications together through a middle meeting point known as Enterprise Application Integration (EAI).
This is illustrated in Figure 11.2. Integration of software application permits for a focus on the organizational goals throughout the various business functions.
This helps reduce cost and boosts effectiveness and efficiency for the long term, see also Figure 11.3.

11.1 Software Platform Trends and Emerging ...


Figure 11.3 Traditional vs. Enterprise Application Integration

11.1 Software Platform Trends and Emerging ...


Web Services and Service-Oriented Architecture
A web service is an autonomous software that performs a specific task. Such services can be composed to perform more complex tasks.
Web services are based on a number of technologies including:
XML: Extensible Markup Language. Automated processing of data through tagging.
SOAP: Simple Object Access Protocol. Formulates passage of information and rules in a structured way.
WSDL: Web Services Description Language. Helps describe Web services.
UDDI: Universal Description, Discovery and Integration. Helps locate Web services.
An example of web services and service-oriented architecture is Dollar rent a car system as shown in figure 11.4.

11.1 Software Platform Trends and Emerging ...


Figure 11.4 How Dollar Rent A Car Uses Web Services

11.1 Software Platform Trends and Emerging ...


There is a trend to base the organizations’ IS on a service-oriented architecture which offers a number of advantages including lowering maintenance and integration cost.
A service-oriented system allows for a quick response to the business needs by incorporating the most suited available services from across the business or developing new services making the business goals and IS closely aligned with minimum required cost.