22
Applications and Infrastructure

Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Embed Size (px)

Citation preview

Page 1: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Applications and Infrastructure

Page 2: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Agenda

Architecture and Environments Computing Environments Computing Orientations Transaction Processing Monitor Object Transaction Monitor

Page 3: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Architecture and Environments

Architecture: not just form, function, style Also heavily influenced by environment,

orientation, history, materials, & technology environment: the context into which the

architected entity is placed or used for example: building set in the woods, CD player for

those who jog, a lively musical piece for dancing

environment: often the source for the parts and tools to be used during construction

Page 4: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Computing Environments

Architecture: state, behavior, paradigm Environment: "business"/application domain,

hardware configuration, reusable software What resources are available to develop

software? How can the software be deployed? What environment will support the developed

software when it runs?

Page 5: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Computing Environments: Basic Hardware Resources

Hardware: Processor: instruction set, registers, etc. Main memory (RAM) Input/output (I/O) mechanism what’s missing?

Programming in old microcomputer days toggle switches for input and lights for output program persisted only while power was on tedious; could not save/reload useful programs to re-run

without re-toggling in program

Page 6: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Computing Environments: Precursor to Operating Systems

Some kind of secondary, non-volatile storage Some software to boot up computer

loads just enough instructions and data to be able to read more instructions and data from the secondary storage

now present in the boot sector of a diskette, CDROM disc, or hard disk drive

Some software kept track of fixed locations where other programs were loaded

Bootstrap code was first runtime environment

Page 7: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Computing Environments: Early Operating Systems

Key advances in peripheral hardware... tele-typewriter console, magnetic media (drum, disk, tape),

serial communications

...as well as operating system software... process and memory management device management

...lead to easier system management of expensive computing resources and assembly programming

Page 8: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Computing Environments: Operating Systems

Faster processors, more RAM, more peripherals allowed sharing of expensive computing resources inspired virtual memory management in software

later in hardware for better address range protection/performance managed file systems to organize data

Trend: better/more hardware better/more underlying software to exploit hardware better programming model: less concerns about hardware

Structured programming; modules used

Page 9: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Computing Environments: Modularization Support

Driving factors: Relocatable programs supported in OS As OS size grew and number of users sharing RAM grew,

need to efficiently manage expensive RAM increased

Compilers compiled source code to "object code" Static linker concatenated object code files, resolved

external references to relative addresses, created load module file

Loader found available RAM location for load module file, added starting address to all relative addresses, and transferred control to starting address

Page 10: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Computing Environments: Dynamic/Shared Link Libraries

Relocatable load modules optimized memory use Libraries of useful object code were developed

Static linking of library object code in multiple running load modules caused many copies of code to reside in RAM

Dynamic linking: references to any shared library's object code can be resolved

at runtime one copy shared by all

Shared object code must be re-entrant and serially reusable

Page 11: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Computing Environments: Desktop Application Environment

Where we are today: DLLs

Windows OS and GUI are DLL based Linux has shared libraries

also GNOME/KDE on X Window System configuration repository (e.g., Windows registry) deploy by retail or Internet download user installs and configures persistence of data: predominantly via files browsers as clients of external computer systems

Page 12: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Computing Environments: Java Runtime Environment

Java Virtual Machine (JVM) “java” executable

class loader (like DLL system, plus security) byte code verifier (for security and integrity)

“standard” class files native platform interface libraries plus:

application’s class files

Page 13: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Computing Environments: Enterprise App. Environment

Business environment, not personal environment need to share resources to minimize cost mission critical software came from (for example):

competition (e.g., streamline order processing) internal policy (e.g., consolidate accounting) best practices (e.g., integrate diverse systems)

Early enterprise apps (for example): banking, flight reservation stock ticker feeds batch processing

Page 14: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Enterprise App. Environment

Diagrams from:

Building Java Enterprise Systems with J2EE, Perrone & Chaganti, Sams Publishing, 2000.

Page 15: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Computing Orientations

Data oriented distributed, persistent state high overhead, high availability, complex development

Process oriented distributed, volatile state low overhead, high availability, lack of standardization

Message oriented one-way, send-and-forget low/high overhead, low/high availability

Page 16: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Transaction Processing Monitor:Introduction

early client-server development environment manages applications, load and availability “operating environment” that monitors and

controls transaction processing in and among applications includes managing:

DB connections network resources OS resources

Page 17: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Transaction Processing Monitor:Characteristics

reliable transactions consistent client response time maintaining throughput (transactions per second) large number of terminals and active users associative and random accesses to files fine-grained failure handling intensity of DB and communication management vs.

computation requirement for high availability business logic in procedural code proprietary interfaces

Page 18: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Transaction Processing Monitor:Transactions

unit of work (“bracketed” by start…end) ACID properties commit or roll back changes

not operations are undoable

multiple DBMSes per transaction are possible 2 phase commit:

Phase 1: all DBMSes write updates to stable storage Phase 2: after Phase 1 acks, all DBMSes commit

transactions not restricted to DBMSes

Page 19: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Transaction Processing Monitor:Requests

user-oriented, but may originate from app may require several transactions to complete

For example, one request may consist of these transactions enter order request shipment issue bill

application developer delimits transaction boundaries of requests

Page 20: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Transaction Processing Monitor:Services

Naming: map application name to app instance Connection: funnels requests from clients to apps Resource Routing: request indicates set of

resources to use, TPM provides access Activation: detect and respond to faults by

creating and/or utilizing redundant parts

Page 21: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Object Request Brokers

conceptually: communication bus for object access and interaction

in reality, shared libraries of code used by client objects to access distributed services server objects to provide distributed services client stubs and server skeletons that handle:

marshaling/unmarshaling method identification and location object activation (server side)

foundation for object services

Page 22: Applications and Infrastructure. Agenda " Architecture and Environments " Computing Environments " Computing Orientations " Transaction Processing Monitor

Object Transaction Monitor

fueled by need to build enterprise apps: more rapidly with higher reliability high interoperability better development environments

focus on objects, not application procedures ORB + TPM using objects also called Component Transaction Monitor(CTM)