Analyse hardware and software tools to meet functional requirements

Analyse hardware and software tools to meet functional requirements

Inside this reading:

Functional requirements 2

Platforms 3

Hardware and software platforms 3

Platform selection 4

Server operating systems 9

Software applications 12

Hardware components 14

Connections 14

Storage 15

Security 16

Video 17

Sound 19

CD and DVD 21

Scanners OCR and digital cameras 23

Summary 24

Functional requirements

Functional requirements describe the characteristics of a planned system. The system could be a task, function or action. Determining the functional requirements happens in the early stages of a project, and is recorded in a functional requirements document that describes:

· Current system, its methods and procedures, the equipment in use, inputs and outputs and systems deficiencies.

· Proposed methods and procedures, the existing functions used and there improvements, functions of new capabilities and the impact this has on the business environment.

· Detailed characteristics of the functions to be performed and the performance requirements of the proposed system including response time, capacity limits and accuracy.

· Environment, that is, a description of the

– software environment including the operating system, programming language and database management system

– hardware environment including processors, storage, input and output devices, communications environment both hardware and software and the interfaces with other corporate applications.

The functional requirements should be very specific about the type of hardware and software platform needed for the proposed system. This information is used as the basis for determining the selection criteria for computer resources. The example below is an extract from the functional requirements for the upgrade of a DVD authoring tool used for editing DVD videos:

…..the minimum requirements for each workstation are:

Dual x86 compatible processors with a Sysmark 2002 score of 160 or greater....

The writer of this functional requirement is being very specific and clear. Unfortunately, this is not always the case and sometimes you will need to analyse the functional specifications closely to determine what is actually needed. The above example states that each workstation must have a dual x86 processor with a Sysmark 2002 performance score of 160 or greater. Sysmark is a computer benchmarking tool that enables performance comparisons across multiple platforms. It is used to benchmark workstations, laptops and desktop PCs. Standard Performance Evaluation Corporation is a non-profit organisation that maintains a set of benchmarks used to evaluate the performance of new computers including servers and corporate machines.

Platforms

A computer platform refers to the components that make up a computer system. Computer components can be grouped into hardware and software. There is a wide variety of computer platforms in the marketplace; some platforms may be familiar, like Wintel, while others may be unfamiliar, like QNX. Others may not be thought of as computer platforms at all but are, for example, your mobile phone or games console.

Hardware and software platforms

Hardware platform refers to the hardware components that make up the computer system while software platform refers to the operating system or programming language developed for the hardware. There are defined terms used in the IT industry to describe the types of platforms including:

· Wintel

· Lintel

· Mac, Macintel

· Mainframe

· UNIX

· Alpha AXP

· Java

· .Net

The Wintel platform refers to a Microsoft Windows operating system (the Win in Wintel) that uses an Intel x86 or compatible processor. The Intel x86 or compatible reference refers to a small number of processor manufactures that produce a computer processor that is compatible with the x86 instruction set. Some examples of x86 compatible processor manufacturers are AMD, VIA and Transmeta.

A Lintel platform refers to a Linux operating system that uses an Intel x86 or compatible processor.

A Mac platform (Apple Macintosh) refers to a computer system using Apple hardware and a Mac OS operating system. The current processor used in Apple hardware is produced by IBM and is the 64-bit PowerPC G5. However, in 2006 Apple moved to the x86 Intel hardware architecture (Macintel). Mac OS X ‘tiger’ is the current Mac operating system.

A mainframe platform refers to a large processing intensive computer system. The hardware and software architecture can vary depending on the manufacturer. An example of a mainframe computer is the IBM zSeries. The zSeries is a high-end IBM product that uses 64-bit architecture. The zSeries uses IBM multichip module processor and can be configured to use a maximum of 1728 processors. IBM uses virtualisation technology to run multiple operating systems on a single mainframe. This allows the flexibility to install operating systems that best support the provided service. Currently IBM holds more than 90 percent of an expanding mainframe market.

A UNIX platform refers to a computer system that uses the UNIX operating system, or derivative, on a variety of hardware platforms. UNIX is able to run a variety of processors including x86, RISC and PowerPC. Over the years UNIX has evolved into many different proprietary and Open Source operating systems. Sun Solaris is an operating system based upon the UNIX SunOS Open Source operating system.

In modern computing we are no longer limited by the physical platform of computer systems. With the use of virtualisation technology we can have multiple platforms on the one physical machine. With the use of software like Virtual PC or VMware the boundaries of running one operating system per physical machine are removed. This makes the consolidation of multiple platforms onto one physical platform possible, reducing the overall cost and the flexibility to add capacity as needed.

Platform selection

Platform choice is an important consideration very early on in a project. Most projects cannot be changed midstream, as there are many different factors such as file formats and protocols that cannot be changed. These often differ from platform to platform. It must be noted that development can be completed on virtually any platform; however some are easier and more cost effective than others.

In the end, developers have to assess what system is best for their project. As a developer, you will need to consider some technical elements such as:

· what technology is supported by the platform

· compatibility with existing systems

· what systems or platforms you are developing for

· the type of media that will be used

· the formats of any legacy (old) content

· what funding is available to purchase software and hardware.

Server platforms

There are many different types of server platforms that perform many different functions. A server’s platform mainly depends on the type of service that it is providing. Some of the functions provided by a server are:

· mail services

· web services

· transactional processing services

· streaming media services

· remote access services

· file storage and retrieval services

· network access

· application services.

To select an appropriate server platform there are numerous issues to consider, including:

· Budget—How much money has been allocated for the purchase of the equipment? Servers can range in price from as low as $1,000 dollars for a low end x86 compatible system to $200,000+ for an IBM zSeries Mainframe.

· Total cost of ownership (TCO)—This refers to the original cost and the ongoing maintenance cost for the life of the equipment and must be factored in when selecting a server platform.

· Personnel skills and experience—Developers and IT Administrators need to be confident working with the chosen platform. Is the IT team able to support or develop software for the platform?

· Functional requirements—What is the function of the server, what are the time requirements (response and processing times), how many transactions per second are required, what are the storage requirements, what is the number of concurrent users, what type of content is being stored? How does it integrate with the current system? What operating system does the application require?

· Project or business requirements—Does the platform conform to present and future business requirements? What is the technical direction of the organisation? Are there any plans to migrate from one platform to another?

· Security—What are the security requirements and how sensitive is the data being stored? Who needs to have access?

When selecting a server platform you must consider all these points and any other factors that you can identify for your particular project.

Server diagrams

When designing a server system, it is important to understand how all the different parts of the IT system function and fit together. The clearest way to do this is to use a diagram. Your diagram should describe the macro and micro server environment, which is the overall design of how the servers interact with each other and the IT environment, and the individual design of each server’s sub-system. When drawing your diagrams you will need to record information about:

· the server platform, processors, RAM, HDD, operating system, etc

· the role of the server, the software installed, etc

· data flow (both internally and externally)

· security hardware and software devices (eg firewalls) needed

· the network name and IP addresses.

Figure 1: Logical server diagram

Figure 1 is an example of a logical server diagram showing the logical connections, the server roles and the platforms types. It is used as an overall view of the network.

Figure 2: Physical diagram

Figure 2 is a physical diagram of the servers mentioned in Figure 1. It shows the physical installation of the equipment onto a rack. It is used in the planning stage of hardware installation.

Figure 3: Detailed server hardware configuration

Figure 3 is a diagram showing the detailed hardware configuration of a ProLiant server. This diagram is used to record the sub-systems of the server.

Server operating systems

One of the major decision points of choosing a platform is the selection of the operating system. Choosing the operating system is an important part of meeting the overall functional requirements of the system. When considering the operating system you will need to take into account the following.

· Hardware platform—Not all operating systems will function with every hardware platform. Windows will only work natively on an x86 platform. When an operating system works natively it means that the machine code being executed is embedded within the processor; there is no emulator that sits between the operating system and the hardware. An emulator is a piece of software (executed natively) that tricks the operating system into thinking it has been installed on the correct hardware platform. Virtual PC for Mac is an emulator installed on Macintosh hardware to use a Windows operating system.

· Current IT infrastructure—What type of hardware, software and programming environment is in use? Will the new operating system be compatible with current applications?

· Future IT infrastructure—What is the organisation’s short-term and long-term IT strategy? How will the operating system fit in with future needs?

· Support—Who will be supporting the operating system; will it be supported in house, by the vendor or by a third party?

There are many server operating systems available in the IT marketplace. Each operating system is pitched at a different market level. Some operating systems are used by small to medium enterprises while others are used by large enterprises or government institutions. It is important to align the purchase of the operating system with IT direction and business goals. Some examples of operating systems vendors follow.

Novell

Novell’s Open Enterprise Server is a server operating system that uses the Linux and Netware kernel. Open Enterprise Sever provides ease of network management using NetWare management services with greater application compatibility through Linux. Go to the Novell website at www.novell.com to find out more about the different products available for server operating systems from Novell.

Apple

Apple Mac OS X server ‘Tiger’ is a server operating system built on a UNIX foundation with a Mac microkernel that takes advantage of the open source BSD software. Mac OS X server provides a stable, high-performance, 64-bit computing platform for enterprise applications, web and email services, directory services, and file and print services. It has chat and weblog services built-in and provides service to Windows workgroups. Go to the Apple website at www.apple.com/server to find out more about Mac OS X server.

Microsoft

Microsoft Windows 2003 server is an operating system that provides many different network services. Security, one of the major criticisms of Windows 2000 server, has been addressed by turning off all non-essential services on startup in Windows 2003. There are many different versions of Windows 2003 server including Small Business server, Enterprise Edition, Web Edition and Data Centre Edition covering a wide range of user needs.

SCO group

The SCO group main product is OpenServer. OpenServer is a UNIX operating system that is very stable, reliable and secure. SCO OpenServer uses Open Source software like Apache to provide greater application support. For more information on SCO OpenServer and other SCO operating systems go to www.sco.com

Sun Microsystems

Sun Microsystems proprietary operating system is Solaris. Solaris is a certified UNIX version that is available for free. Solaris has all the benefits of UNIX with an easy graphical user interface. To learn more about Solaris go to www.sun.com.

IBM

IBM has a range of server operating systems including VM, CMS, zVM, Linux, AIX, zOS. VM/CMS is an operating system used on IBM mainframes. VM/CMS is actually two operating systems VM (Virtual Machine) and CMS (Conversational Management System). For more information on IBM server operating systems go to www.ibm.com.

HP

HP has a number of server operating systems for multiple platforms. Some HP operating systems are OpenVMS, Tru64, HP-UX. For more information on HP operating systems go to www.hp.com.

There are many more server operating systems than those listed above. For a exhaustive list of available operating systems go to en.wikipedia.org/wiki/List_of_operating_systems.

Software applications

Software applications come in many different forms and functions. Software applications are installed on servers, workstations and personal computers, and can be developed inhouse or off-the-shelf packages. Inhouse development is when an organisation develops a software application for a particular purpose for use by that organisation only. An example is an insurance company that uses a proprietary software application to handle insurance claims.

A commercial off-the-shelf package is ready-made and available to anyone willing to purchase it. There are many different categories of off-the-shelf applications. Some of the more common applications are word processor, relational database management systems, graphics programs, email servers and clients, web browsers, enterprise resource planning and many more. When selecting a software application make sure the application: