Below is the uncorrected machine-read text of this chapter, intended to provide our own search engines and external engines with highly rich, chapter-representative searchable text of each book. Because it is UNCORRECTED material, please consider the following text as a useful but insufficient proxy for the authoritative book pages.
84 Application An application is a computer program designed to perform a group of coordinated tasks for the benefit of its user. Architecture Computer architecture is a specification detailing how a set of software and hardware technology standards interact to form a computer system or platform. In short, computer architecture refers to how a computer system is designed and what technologies it is compatible with. As with other contexts and meanings of the word âarchitecture,â computer architecture is likened to the art of determining the needs of the user, system, and technology to create a logical design and standards. Auto-scalers An auto-scaler is a mechanism offered by cloud service providers that adjusts resources in real time to meet demand at a specific level of service. Availability Availability, in the context of a computer system, refers to the ability of a user to access information or resources in a specified location and in the correct format within a reasonable amount of time. Backbone A backbone is the part of the computer network infrastructure that interconnects different networks and provides a path for exchange of data among these different networks. Build A build is the process of converting source code files into standalone software artifacts that can be run on a computer. Client-server model The client-server model is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Cloud computing Cloud computing is a general term used for the delivery of hosted services over the Internet. Computer cluster A computer cluster is a group of servers and other resources that act like a single system and enable high availability, load balancing, and parallel processing. Computer platform A computer platform is a system that consists of a hardware device and an operating system that an application, program, or process runs upon. An example of a computer platform is a desktop computer with Microsoft Windows installed on it. A desktop is a hardware device, and Windows is an operating system. Glossary
Glossary 85 Container (application containerization) Application containerization is an operating system virtualization method for deploying and running distributed applications without launching an entire virtual machine for each application. Decentralized organization A decentralized organization is one in which most decisions are made by mid-level or lower-level managers, rather than being made centrally by the head of the company. Decompose (software decomposition) In software design, decomposition is the separation of a system into simpler or basic subsystems. It is often a difficult task to create an opti- mal decomposition of a system, and it is as much a people problem as it is a technical problem. Decoupled architecture A decoupled architecture is a framework that allows system compo- nents to remain completely autonomous and unaware of each other. Discoverability Discoverability is the ability of a piece of information or a service to be found. Discoverability is greatly affected by the quality and quantity of metadata available for a piece of information or service. Distributed A model in which components of a software system are shared among multiple computers to improve efficiency and performance. Enterprise information portal (EIP) An enterprise information portal, also known as a business portal, is a website or web service that serves as a single gateway to an organiza- tionâs information and knowledge base for employees and possibly for customers, business partners, and the public. Event-driven architecture (EDA) Event-driven architecture is a design paradigm in which a software component executes in response to receiving one or more event noti- fications. EDA is more loosely coupled than the client/server paradigm because the component that sends the notification doesnât know the identity of the receiving components at the time of compiling. Hosted services Hosted services are technology services offered to an individual or company by a provider that hosts physical servers running services somewhere else. Access to the services is provided through a direct net- work connection or via the Internet. Infrastructure The term infrastructure in an information technology (IT) context refers to an enterpriseâs entire collection of hardware, software, networks, data centers, facilities, and related equipment used to develop, test, operate, monitor, manage, and/or support IT services. JavaScript JavaScript is an object-oriented computer programming language originally developed for web development. It has evolved and can now be used to program server and database applications (full stack). It has become one of the most popular programming languages on the web. Load balancer A load balancer is a piece of hardware or software that distributes net- work requests to applications spread across multiple servers. A load balancer is used to improve the concurrent user capacity and overall reliability of an application. Mainframes Mainframe computers are computers used primarily by large organi- zations for critical applications; bulk data processing such as census, industry, and consumer statistics; enterprise resource planning; and transaction processing.
86 Guidance for Development and Management of Sustainable Enterprise Information Portals Maintainability Maintainability is defined as the probability of performing a success- ful repair action within a given time. In other words, maintainability measures the ease and speed with which a system can be restored to operational status after a failure occurs. Metadata A set of data that describes and gives information about other data. Microservices architecture Essentially, microservices architecture is a method of developing soft- ware applications as a suite of independently deployable, small, modular services in which each service runs a unique process and communicates through a well-defined, lightweight mechanism to serve a business goal. Modularity Modularity is the degree to which a systemâs components may be sep- arated and recombined without affecting the rest of the system. The opposite of a modular architecture is an integrated architecture, in which no clear divisions exist between components. NoSQL NoSQL or Not Only SQL describes an approach to database design that implements a mechanism for storage and retrieval of data that is different than the tabular relations used in relational databases. NoSQL databases are often categorized into key-value stores, document stores, column stores, or graph stores. NoSQL databases were created to cir- cumvent the limitation of relational databases in big data and real-time web applications. Open source Denotes software for which the original source code is made freely avail- able and may be redistributed and modified. Pay-as-you-go A payment method for cloud computing that charges based on usage. The practice is like that of payment for utility useâcharges are based on the amount of resources used. Platform agnostic Platform agnostic is a concept that refers to the design attributes and philosophies of software products. A platform-agnostic product runs equally well across more than one platform. Polyglot programming Polyglot programming is the idea that applications should be written in a mix of languages to take advantage of the fact that different languages are suitable for tackling different problems. Complex applications combine different types of problems, so picking the right language for each job may be more productive than trying to fit all aspects into a single language. Polyglot persistence is an equivalent concept applied to databases. Complex applications may be productive if they use dif- ferent database technologies for each of their data needs rather than one common technology. Processes A process is an instance of a program running in a computer. It is often equated to the meaning of task as performed by a computer. Provisioning Provisioning is the process of providing IT resources to a user or a customer. In cloud computing, provisioning is done automatically by deploying an IT resource using pre-defined procedures that are carried out electronically with little to no human intervention. Python Python is an open source, high-level programming language designed for general-purpose programming. Python has been widely adopted and
Glossary 87 is currently used to develop or augment web and cloud applications as diverse as web applications, web services, GIS applications, 3-D graphical applications, big data, and data analysis applications. Replaceability Replaceability is the ability of a system to substitute some components to accommodate change with reasonable effort. Replication Replication in computing involves sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility. Request driven Request-driven or message-driven processing is an approach used within the client/server computing model in which a client (for example, a web browser) sends a service request in the form of a specially formatted message to a program that acts as a request broker, handling messages from many clients intended for many different server applications. Requirements Requirements are constraints, demands, necessities, and needs that must be met or satisfied by a system to fulfill its desired functions. Resources In computing, a system resourceâor simply, resourceâis any physical or virtual component of limited availability within a computer system. Every device connected to a computer system is a resource. Every internal system component is a resource. Virtual system resources include files, network connections, and memory areas. Schema In computer programming, a schema is the organization or structure for a database. Script In computer programming, a script is a program or sequence of instruc- tions that is interpreted or carried out by another program rather than directly by the computer processor (as a compiled program is). Security Security, in IT, is the defense of digital information and IT assets against internal and external, malicious, and accidental threats. This defense includes detection, prevention, and response to threats through the use of security policies, software tools, and IT services. Semantic search Semantic search is an approach to finding content on the Internet that anticipates the intention behind the userâs query. The goal of semantic search is to provide the end user with the most relevant search engine results possible. In semantic search, the search engineâs programming identifies the keywords in a query but also tries to predict user intent when returning results using such things as previous searches, the userâs geographical location, trending topics, the relationship between words in the userâs query, the relative success of similar queries, and the type of device submitting the query. Server A server is a computer that provides data to other computers. It may serve data to systems on a local area network or a wide area network over the Internet. Serverless computing Serverless computing, also known as function as a service (FaaS), is a cloud-computing code execution model in which the cloud provider fully manages starting and stopping of a functionâs container platform as a service (PaaS) as necessary to serve requests, and requests are billed
88 Guidance for Development and Management of Sustainable Enterprise Information Portals by an abstract measure of the resources required to satisfy the request, rather than per virtual machine, per hour. Service The term service refers to a software functionality or a set of software functionalities (such as the retrieval of specified information or the execution of a set of operations) with a purpose that can be reused by different clients for different purposes, together with the policies that should control its usage. Service-oriented architecture (SOA) Service-oriented architecture is a style of software design where ser- vices are provided to the other components by application compo- nents, through a communication protocol over a network. One of the main purposes of service-oriented architecture is the ability to be inde- pendent of vendors, products, and technologies. Software libraries A software library is a suite of data and programming code that is used to develop software programs and applications. It is designed to assist both the programmer and the programming language compiler in building and executing software. Software stack A software stack is a group of programs that work in tandem to produce a result or achieve a common goal. The term software stack also refers to any set of applications that works in a specific and defined order toward a common goal or any group of utilities or routine applications that work as a set. SQL Structured Query Language Sustainable A system is deemed sustainable if it is meeting the needs of the present without compromising its ability to meet its future needs. System migration A system migration is the process of transferring business process IT resources to a newer hardware infrastructure or a different software platform for the purpose of keeping up with current technologies and/or to gain better business value. Tagging Tagging is the action of labeling a piece of information such as a web- page, a file, a picture, or a video with one or more keywords (tags) describing the information. âTagsâ are not displayed as part of the con- tent of that piece of information. Tagging is one of the ways to create metadata. An example of tagging is the automated association of tags describing the brand and model of camera used to take a digital picture to the picture file itself. Time driven Time-driven programming is a computer programming paradigm, where the control flow of the computer program is driven by a clock. A program is divided into a set of tasks (processes), each of which has a periodic activation pattern. Time-driven programming is often used in real time and critical computer systems such as the ones used by airplanes and power plants. Traditional system (monolithic) Traditional systems are systems designed using a unified model to be self-contained. Components are tightly interconnected and interdepen- dent rather than loosely coupled. Transactionless Transactionless is a term describing an alternative database design used by NoSQL databases to allow for scalability, speed, and flexible schemas.
Glossary 89 Transactionless databases, unlike relational databases, do not perform ACID- (Atomicity, Consistency, Isolation, and Durability) compliant transactions to ensure that a database task is completed correctly and in a timely manner, instead transactionless databases rely on the client applications to perform the necessary checks and operations to ensure similar compliance. Uptime Uptime is a computer-industry term for the time during which a com- puter is operational. Use case In software and systems engineering, a use case is a list of actions or event steps, typically defining the interactions between a role (known in the Unified Modeling Language as an actor) and a system, to achieve a goal. The actor can be a human or other external system. User A user is a person who uses a computer or network service. Users generally use a system or a software product without the technical expertise required to fully understand it. User experience (UX) Every aspect of the userâs interaction with a product or a service that makes up the userâs perception of the whole. User interface (UI) In IT, the user interface is everything designed into a device or service with which a person may interact. This can include display screens, touchscreens, keyboards, mouse, etc. Versioning Versioning or version control is a category of processes and tools designed to keep track of multiple different versions of software, content, docu- ments, websites, and other information in development. Virtualization Virtualization refers to computing technologies designed to provide a layer of abstraction between computer hardware systems and the software running on them, allowing the resources used by a software application to be easily modified or migrated without having to be reinstalled on new hardware. Virtualization technologies also allow for multiple operating systems to be run simultaneously on a single machine, increasing the utilization of purchased hardware.