Application Architectures



Similar documents
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila

28 Application Architectures

Architecture Design & Sequence Diagram. Week 7

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

CASE workbenches. . Software tools to support specific process phases. Objectives. Chapter 26. Chapter 26 CASE Workbenches

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Objectives. Distributed Databases and Client/Server Architecture. Distributed Database. Data Fragmentation

irods and Metadata survey Version 0.1 Date March Abhijeet Kodgire 25th

2) What is the structure of an organization? Explain how IT support at different organizational levels.

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

Introduction to programming

Java Programming (10155)

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008

Chapter 3. Database Environment - Objectives. Multi-user DBMS Architectures. Teleprocessing. File-Server

Chapter 13: Program Development and Programming Languages

DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

INFORMATION TECHNOLOGY PROGRAM

Using In-Memory Computing to Simplify Big Data Analytics

Master s Program in Information Systems

26. Legacy Systems. Objectives. Contents. Legacy systems 1

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha

Information and Communications Technology Courses at a Glance

SOFTWARE DESIGN TECHNIQUES. Nagalaxmi Telkar CSCI 5828 Presentation Slides

From Control Loops to Software

Integrating VoltDB with Hadoop

School of Computer Science

Does function point analysis change with new approaches to software development? January 2013

DIABLO VALLEY COLLEGE CATALOG

Copyright bizagi

Windchill Service Information Manager Curriculum Guide

Deploying Microsoft Operations Manager with the BIG-IP system and icontrol

LSKA 2010 Survey Report Job Scheduler

Software Development Training Camp 1 (0-3) Prerequisite : Program development skill enhancement camp, at least 48 person-hours.

Chapter 11: Input/Output Organisation. Lesson 06: Programmed IO

Lecture 5: Foundation of Network Management

Division of Mathematical Sciences

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Multiprogramming. IT 3123 Hardware and Software Concepts. Program Dispatching. Multiprogramming. Program Dispatching. Program Dispatching

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

What is a database? COSC 304 Introduction to Database Systems. Database Introduction. Example Problem. Databases in the Real-World

1 File Processing Systems

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

Masters in Information Technology

Integrated Open-Source Geophysical Processing and Visualization

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

Computer Networks Vs. Distributed Systems

SAS 9.4 Intelligence Platform

Service-Oriented Architecture and Software Engineering

COMPONENTS in a database environment

ANALYSIS OF GRID COMPUTING AS IT APPLIES TO HIGH VOLUME DOCUMENT PROCESSING AND OCR

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Best Practices: Extending Enterprise Applications to Mobile Devices

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Architectural patterns for building real time applications with Apache HBase. Andrew Purtell Committer and PMC, Apache HBase

Integrating Web Messaging into the Enterprise Middleware Layer

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

In the case of the online marketing of Jaro Development Corporation, it

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Implementing Network Attached Storage. Ken Fallon Bill Bullers Impactdata

Parallel Computing using MATLAB Distributed Compute Server ZORRO HPC

ABET General Outcomes. Student Learning Outcomes for BS in Computing

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Chapter 11 I/O Management and Disk Scheduling

Service Oriented Architecture

Last Updated: July STATISTICA Enterprise Server Security

Technical Overview Simple, Scalable, Object Storage Software

SAS 9.3 Intelligence Platform

Chapter 3. Operating Systems

Tutorial: Packaging your server build

Rotorcraft Health Management System (RHMS)

Distributed File Systems

Distributed Services & Distributed Pro/BATCH Distributed Services & Distributed Pro/BA May 2010 Rev I

1. INTERFACE ENHANCEMENTS 2. REPORTING ENHANCEMENTS

Configuring Dell OpenManage IT Assistant 8.0 to Monitor SNMP Traps Generated by VMware ESX Server

Why is CICS Still Alive? Dr Geoff Sharman Visiting Professor in Computer Science Birkbeck College

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

Service Oriented Architectures

Chapter 2: Remote Procedure Call (RPC)

Evolution of OpenCache: an OpenSource Virtual Content Distribution Network (vcdn) Platform

Manjrasoft Market Oriented Cloud Computing Platform

Elena Baralis, Silvia Chiusano Politecnico di Torino. Pag. 1. Query optimization. DBMS Architecture. Query optimizer. Query optimizer.

System types. Distributed systems

Skynax. Mobility Management System. System Manual

Configuring Firewalls An XML-based Approach to Modelling and Implementing Firewall Configurations

How In-Memory Data Grids Can Analyze Fast-Changing Data in Real Time

PANDORA FMS NETWORK DEVICE MONITORING

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Performance Prediction, Sizing and Capacity Planning for Distributed E-Commerce Applications

Distributed Systems Architectures

Introduction to Business Information Systems

DATABASE SYSTEM CONCEPTS AND ARCHITECTURE CHAPTER 2

Chapter 13: Program Development and Programming Languages

An Esri White Paper June 2010 Tracking Server 10

Course Syllabus For Operations Management. Management Information Systems

Transcription:

Software Engineering Application Architectures Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain the organization of two fundamental models of business systems - batch processing and transaction processing systems To describe the abstract architecture of resource management systems To explain how generic editors are event processing systems To describe the structure of language processing systems

Generic application architectures Application systems are designed to meet an organizational need. As businesses have much in common, their application systems also o tend to have a common architecture that reflects the application requirements. A generic architecture is configured and adapted to create a system that meets specific requirements. Use of application architectures As a starting point for architectural design. As a design checklist. As a way of organizing the work of the development team. As a means of assessing components for reuse. As a vocabulary for talking about application types. Application types Data processing applications Data driven applications that process data in batches without explicit user intervention during the processing. Billing systems; Payroll systems. Transaction processing applications Data-centred applications that process user requests and update information in a system database. E-commerce systems; Reservation systems. Event processing systems Applications where system actions depend on interpreting events from the system s s environment. Word processors; Real-time systems. Language processing systems Applications where the users intentions are specified in a formal language that is processed and interpreted by the system. Compilers; Command interpreters

Data processing systems Systems that are data-centred where the databases used are usually orders of magnitude larger than the software itself. Data is input and output in batches Input: A set of customer numbers and associated readings of an electricity e meter; Output: A corresponding set of bills, one for each customer number. Data processing systems usually have an input-process process-output output structure. The input component reads data from a file or database, checks its validity and queues the valid data for processing. The process component takes a transaction from the queue (input), performs computations and creates a new record with the results of the computation. The output component reads these records, formats them accordingly and writes them to the database or sends them to a printer. Data-flow diagrams Show how data is processed as it moves through a system. Transformations are represented as round-edged rectangles, data-flows as arrows between them and files/data stores as rectangles.

Transaction processing systems Process user requests for information from a database or requests s to update the database. From a user perspective a transaction is: Any coherent sequence of operations that satisfies a goal; For example - find the times of flights from London to Paris. Users make asynchronous requests for service which are then processed by a transaction manager. Transaction processing middleware Transaction management middleware or teleprocessing monitors handle communications with different terminal types (e.g. ATMs and counter terminals), serializes data and sends it for processing. Query processing takes place in the system database and results are sent back through the transaction manager to the user s s terminal.

Information systems architecture Information systems have a generic architecture that can be organized as a layered architecture. Layers include: The user interface User communications Information retrieval System database Resource allocation systems Systems that manage a fixed amount of some resource (football game tickets, books in a bookshop, etc.) and allocate this to users. Examples of resource allocation systems: Timetabling systems where the resource being allocated is a time period; Library systems where the resource being managed is books and other items for loan; Air traffic control systems where the resource being managed is the airspace. Resource allocation systems are also layered systems that include: A resource database; A rule set describing how resources are allocated; A resource manager; A resource allocator; User authentication; Query management; Resource delivery component; User interface.

Layered system implementation Each layer can be implemented as a large scale component running on a separate server. This is the most commonly used architectural model for web-based based systems. On a single machine, the middle layers are implemented as a separate program that communicates with the database through its API. Fine-grain components within layers can be implemented as web services. E-commerce system architecture E-commerce systems are Internet-based resource management systems that accept electronic orders for goods or services. They are usually organized using a multi-tier tier architecture with application layers associated with each tier.

Event processing systems These systems respond to events in the system s s environment. Their key characteristic is that event timing is unpredictable so the architecture has to be organized to handle this. Many common systems such as word processors, games, etc. are event processing systems. Editing systems Real-time systems and editing systems are the most common types of event processing system. Editing system characteristics: Single user systems; Must provide rapid feedback to user actions; Organized around long transactions so may include recovery facilities. Editing systems are naturally object-oriented: oriented: Screen - monitors screen memory and detects events; Event - recognizes events and passes them for processing; Command - executes a user command; Editor data - manages the editor data structure; Ancillary data - manages other data such as styles and preferences; File system - manages file I/O; Display - updates the screen display.

Language processing systems Accept a natural or artificial language as input and generate some other representation of that language. May include an interpreter to act on the instructions in the language that is being processed. Used in situations where the easiest way to solve a problem is to t describe an algorithm or describe the system data Meta-case tools process tool descriptions, method rules, etc and generate tools. Language processing components (compiler) Lexical analyzer Symbol table Syntax analyzer Syntax tree Semantic analyzer Code generator Application Architecture Data flow model

Key points Generic models of application architectures help us understand and a compare applications. Important classes of application are data processing systems, transaction processing systems, event processing systems and language processing sing system. Data processing systems operate in batch mode and have an input- process-output output structure. Transaction processing systems allow information in a database to be remotely accessed and modified by multiple users. Event processing systems include editors and real-time systems. In an editor, user interface events are detected and an in-store data structure is modified. Language processing systems translate texts from one language to another and may interpret the specified instructions.