Upload
vidog2000
View
222
Download
0
Embed Size (px)
Citation preview
8/7/2019 AIT 600-test
1/24
Chapter 8
Performance and Scalability
Moores Law
Processor power increases by a factor of 2 every 19 months
Is this true?
How long will it continue if so?
The Un-Slippery Slope
Hardware Architecture Gap
The gap between what the processor could do and what it actually does do
The processor is faster than the memory and every now and then it must
wait
Figure 8-1
Hardware Architecture Gap
If reference is not in cache, it must fetch it from main memory
Doesnt seem like a big deal, right?
Hardware Architecture Gap
If space is needed in cache, then system must write cache to main memory before
fetching new data, causing a wait time for processor
Hardware Architecture Gap
If another processor is writing to memory first, then it may cause more delay
If another I/O is being done, there may be a delay
The wait time adds up and can create problems or time out, but most importantly wasted
cycles!
Hardware Architecture can have an impact on performance
Unisys CMP hardware
8/7/2019 AIT 600-test
2/24
Cross-bar memory interconnects
Third-level cache shared by processors
Separate I/O processors
There are 3 ways to improve performance:
1) Faster Processor
2) Improve Hardware Architecture
3) Push the application leftward, down the slope
How to push the application down the slope:
Reduce active memory footprint
Reduce the number of task switches
Reduce lock contentions
Reduce the number of I/Os
Reduce the number of network messages sent or received
Reduce the number of memory overlays
Reducing the active memory footprint
The amount of memory used for the main path processing
If the amount of memory needed for the application is more than what is available
in cache, the cache memory will continually be recycled
Reduce the number of task switches
Saving data values to main memory from cache and reloading a new set of values
Reusing data values in cache by two separate tasks may be rare
Reduce lock contention
Two processes attempting to use the same piece of data at the same time
Only one process can hold the lock on a piece of data at a time
8/7/2019 AIT 600-test
3/24
8/7/2019 AIT 600-test
4/24
The operating system, networking and database software all need to use memory
Use a transaction monitor to assist in sharing programs and resources among all
of the connected terminals
Two-Phase Commit
When you update two or more databases on different systems, there are additional
network messages and disk writes
Figure 8-6
Potential issues with the Two-Phase Commit
Source of delays exist when sub-transactions are initiated and a log is written on
subsystem
Locks can be held longer and potential timeouts can occur or lock contentions
Message Queuing Issues
You must set a schedule to empty the queue or start other systems to keep it
efficient
Another method would be to pass the messages to the transaction monitor to
process the messages, which would start the necessary services
Remote Database Access
Inefficient for real-time transactions
Every database call becomes a network message, or several messages
These messages increase network overhead
Using Transaction Servers Solve the Problem
Use store procedures to call the set of commands to run
Figure 8-7
Batch
3 Basic Reasons for Batch
1) Support cyclical business processes
8/7/2019 AIT 600-test
5/24
2) Support housekeeping tasks
3) Optimization
Perform some task prior to update
Updates are not done until batch is run
Batch Problems
Ran at night
Interferes with other updates
International business requires 24/7 uptime
Load Balancing
Figure 8-7
4 Tiers
Web Browsers
Web Servers
Transaction Servers
Database Servers
Load Balancing
Any number of Web Servers
Any number of Transaction Servers
All working on the same application
Any number of database servers
Load Balancing Web Servers
This requires special network router that allows the external connections to
connect at 1 point (IP/Web address)
The network router then spreads the connections among the web servers
8/7/2019 AIT 600-test
6/24
Also must ensure the data in all of the web servers is the same
Using the dual-active approach solves it
Put all state in the back-end
Business Intelligence Systems
Includes these types of systems:
Data Access
Data Marts
Data Warehouse
Decision Support
All need to handle Ad Hoc Queries and Data Replication
Ad Hoc Queries
I/O Intensive!
Causes:
Checking each record against the search criteria
Moving data to the output message
Sorting
Parsing the query, building a processing plan, and optimizing the plan
Managing temporary data
Doing arithmetic calculations, checking for nulls
And much, much more
Ad Hoc Queries
Large queries will need large amounts of memory
They will clear memory of other items not related
Large queries will dominate the I/O
8/7/2019 AIT 600-test
7/24
Data Replication
Take a copy of the database
Keep database up-to-date by applying the changes
Take changes from the logs
Do not commit failed processes
Is network intensive
Use less larger messages instead of many smaller ones
Data Replication
Delay usually occurs at system load time
Ways to handle the load:
Allow back-up to get behind during work hours and catch up overnight
Sort data before inserting into table
Use software to help manage the load
Backups and Recovery
The more users, the more important not to have a failure
The larger the database, the more likely of hardware failure
Theres more hardware that can fail
The more transactions, the bigger the log file
Larger the log file, the longer the reconstruction
The larger the database, the longer to backup
Backup copies should be made more frequently for large databases, so less to
reconstruct
Backups and Recovery
The bigger the database:
8/7/2019 AIT 600-test
8/24
The more there is to manage
The longer tasks will take
The bigger the files
The more space needed
The more people to please J
Figure 8-8
Web Services: Transmission Times
What can affect transmission times?
Packet loss
Distance to travel
Physical transmission medium
Bandwidth max speed
Network congestion
Condition of network infrastructure
Distributed System Performance Measurement
Unfortunately this is almost impossible
You can measure at single nodes
You can get an estimate of the overall performance but no real measurement
Chapter 9 Systems Management
5 Categories of Systems Management
1. Administration
2. Operation
8/7/2019 AIT 600-test
9/24
3. Fault tracking and resolution
4. Performance management and accounting
5. Security (discussed next week)
1. Administration
All aspects of managing the configuration of a system
Hardware additions/changes/ removals/updates
Software additions/changes/ removals/updates
User access to Network
2. Operation
Keeping the system running
Manage the work flowing through the system
Backups
Detecting faults
Starting and stopping transaction-processing applications
Running batch jobs
User maintenance for applications
3. Fault Tracking and Resolution
Faults must be recorded for fixing later
Log technical details at the time of the fault
Time, user, application, errors, etc
Identify seriousness of the fault
4. Performance Management and Accounting
Statistical information is gathered at various points in the system to provide raw
information for the activity
8/7/2019 AIT 600-test
10/24
Use data to predict future needs
Use for performance tuning
Generate billing information
Use for determining service-level requirements
Maintenance
Usually done at night when network and system traffic is lighter
Define night in a global system
Critical and routine updates/releases are done at defined intervals
Depends on how critical
Define critical
Systems Administration Group
Ensure configuration changes are made in an orderly fashion and time
Operations Group
Ensures the system is running
Monitors systems
Works with Systems Administration group to implement changes
Fault and Tracking Group
Investigates and Resolves errors with Operations groups
Performance Management Group
Provide short-term performance monitoring
Provide long-term capacity planning
Consider Automating Processes and Tasks
Large-scale systems need automation
Too many tasks for manual intervention
8/7/2019 AIT 600-test
11/24
Reserve complex decision making and review for humans
Silo vs. Distributed System
Which is simpler?
Which is easier to manage?
Which is easier to implement components?
Operational Systems Management
Monitor and Control
Interacts directly with the system and monitors what is going on
Process and Manage
Processing and recording information, and displaying information to
operators
Managed Object contains the Monitor and Control element in the form of an Agent
Anything needing management
Application, database, card in router
Manager contains the Process and Manage element
May also contain an Agent
Rules Engine
A filtering agent that only lets the necessary information flow through to the
database for processing
Saves processing, network, memory, etc.
Two groups of systems management products
Point Products perform a specific aspect of management
Suite Products provide a complete suite of services for systems management
Both can be integrated and automated
Autonomic Management
8/7/2019 AIT 600-test
12/24
Allow systems to be self-healing, detecting and correcting problems
Any problems with this?
Report errors for fixing later
Chapter 10 & 11
Chapter 10 - Security
Major Security Concerns
Authentication
Access Control
Protection
Security Management
Authentication
Identifying a user is who they say they are
How can we do this?
Access Control
AKAAuthorization
Giving an Authenticated user the authority to use a resource in a specified way
Any examples?
Protection
Stopping unauthorized access to resources
Can be divided among any number of categories to review for proper protection
See next slide
Protection Continued
Confidentiality only access to needed resources
8/7/2019 AIT 600-test
13/24
Integrity protection against tampering
Nonrepudiation retains originator integrity
Example: digital signature
Denial of Service protection against malicious service blockages
Physical Protection physically locking up the building/equipment
Security Management
How security will be administered
Who grants/denies access
Who decides who/what has access to what
How security breaches are handled
Automated reporting?
Manual reporting?
What Security is needed?
Define a list of security requirements BEFORE designing implementation
architecture
Look at the Data first!
Decide who needs to see what
Grant minimum level access
Decide who need to modify what
Deny all others
Define User Roles
Groups of Users will have the same needs to view/modify data
Easier to manage
Has potential for granting too much access
8/7/2019 AIT 600-test
14/24
Read-Only Users
Manager Roles
Running Reports
No data modification needed
Assigning Roles
During planning stage, state intended actions
During implementation the needs or access levels may change depending on
implementation strategy or changes made since initial plan
If Data is Duplicated
How is access controlled?
Access level strategies need to be consistent and synchd with anywhere
the data is being ported
You do not want to deny access on one system and open it up on another
How to prevent Internal Fraud
Multiple Level Authorizations
2 or more employees must give authorization for something to be
approved
Use fast detection systems to quickly identify suspicious activity
Build in recovery procedures for access violations
Auditing
Logging
Log suspicious activity
Log User Logins
Successful and Failed
Automatic notification to Admin of violations
8/7/2019 AIT 600-test
15/24
Access to Secure Information
Require Multiple-Authentication
2 or more users need to approve before access is granted
Can be physical, biometric, electronic
Can be isolated to specific terminals
Can also be Video surveillance to ensure user access is logged
Daily Reports of Access reviewed
Auditing User Activity
Who should be in charge of auditing?
What should they look for?
Who would they report it to?
What actions could be taken?
How could it be done?
Distributed System Security
The Onion Model
A Layered Approach
Things on the inside are protected
Authentication needs to be done at every layer
Outside layer is protection to inner layers
Resource and access point on every layer
Access Points authenticate access from each outside layer
To access inner core layers, authentication must occur from each outer
layer
Access Points
8/7/2019 AIT 600-test
16/24
Firewalls
Middleware
Server system software
Custom code
All of the above will attempt to keep out unauthorized access
Authenticating Server
Located on outer layer
Must be physically secure too
Controls all access to system
Must be strong authentication or an intrusion could assume the identity of any
user and access anything inside the inner layers
Must be kept current with patches/updates to combat the most current threats
Location Security
Messages of a certain kind are restricted from coming from only a particular
location
Restricts updates/access requests to come from only one server
Unauthorized server requests would be denied and logged
Location Security Continued
Firewalls can provide protection
Separate networks can provide location security
Branches of company on separate networks
Departments operating on separate networks
Boiling Lava Model
Multiple Security Management regimes being used to different parts of the system
Result of Silo systems being networked together
8/7/2019 AIT 600-test
17/24
Each silo having its own security
Departmental policy to have each department manage their own access
Boiling Lava Threats
Users need multiple logon ids
Writing down passwords and ids are a problem
Sharing user credentials to others since access is difficult
User access may not be rescinded when employee leaves organization
Single Sign-On
User logs on once and is granted access to everything using single sign-on
software
Good and Bad, Why?
Boiling Lava Model
Confidence in security?
Is it secure?
Is it consistent?
Is there a central authority?
Should it be implemented?
Web Services Security
Onion Model doesnt work on the Web
On the web, all services are peers and not layered
Example: A crate of apples
Little possibility of location security
Assumptions of authentication are not made
Secure Sockets Layer (SSL)
8/7/2019 AIT 600-test
18/24
https:// web address prefix
Opens a session using encryption keys that are sent with messages
Userid / password software can also be used with SSL to enhance security
SSL sets up secure session
Logon is performed
Security Tokens
Embedded user information in the message
Can contain userid, access level, time
Similar to your work id used for building access, but it is electronic
May contain a hash to verify tampering
A verifiable digit that can be decrypted
WS-Trust Standard
Requestor contacts Security Token Service to get a token
Requestor contacts web service and includes token
Web Service uses token received and contacts Security Token Service to validatethe token
Web Service grants access upon successful validation of token
5 Main Implementation Questions
1. Which applications belong in which security context?
2. Where is authorization going to take place?
3. Where is access control going to take place?
4. Where is security management going to take place?
5. What threats exist and what are the countermeasures?
Implementation Planning
8/7/2019 AIT 600-test
19/24
Use a network diagram and overlay security
Indicate where access control points will be located
Indicate where authentication will take place
Access Control
Where will this occur?
Can occur at the server
Can occur at a place prior to the application services
Integrating Existing Security
Access Control points connect old and new
Provide a consistent security policy
Bridge the old policies with the new over time
Chapter 11 - Application Design and IT Architecture
Design Up-Front or As-Needed?
I say Up-Front!
Modify as-needed later in a phased approach
Waterfall Development?
RAD?
Waterfall Development
Gather all of the requirements up front and develop
Easier to make changes to fix problems in the requirements gathering
stage then in the design or programming phase
Problems with Waterfall Development
End users and the business do not know the requirements, so how do they know it
is right?
8/7/2019 AIT 600-test
20/24
Difficult to express the design to programmer and sponsor in a clear manner
Division between requirements, design and implementation leads to over
engineering the project
Iterative Development
A series of waterfall developments overlapping one another
Rapid Application Development (RAD)
Combated waterfall approach in that it allowed for a prototype to be
created and tweaked to give customer what they want, and more quickly
Eliminated the rigorous requirements gathering
Business Rules
Information in databases are facts about the real world
Define the structure of these facts and how they are processed
Tony Morgans view of Rules
5 rule patterns
Tony Morgans 5 Rule Patterns
1.Constraints dependent on meeting a single criteria
2.List Constraints dependent on meeting a set of criteria
3.Classification if a certain criteria met, then something happens
4.Computation formula to compute
5.Enumeration some standard is met
Rules can be translated to Code
Using If / Then criteria
Is a contrast to some ways of thinking where Rules must always be true
What problems do you see with this?
Existing Systems
8/7/2019 AIT 600-test
21/24
2 Classes of Programmers
Lowly Maintenance Programmer
Superior New Application Development Programmer
What do you think?
Reuse of Components
1.Programmer who writes reusable components
2.Assembler who writes scripts to call the components
3.Administrator who writes the deployment descriptors and configures the
production system
Serendipitous Reuse
Components likely do not fit every need
Components may do more than you need
Wrong technology Java vs COM
Security interfaces dont work
Component assumptions dont fit
May work in small applications
Architectural Reuse
Define reuse opportunities while you are designing architecture
Reuse only occurs if you design it
Define the interfaces and look for components to implement the interfaces
Architectural Reuse
Components most likely to be reused:
Horizontal Components consistent use of error reporting, printing and
security components
Interface to Common Data customer and product data
8/7/2019 AIT 600-test
22/24
Interface to Common Routines calculations and data manipulation
Reuse is good for:
Screen layouts
Screen format parts
Design patterns
Documentation
Testing routines
Organizations are always looking for:
Faster Development
Cost Reduction
Better Security, Reliability and Performance
Enterprise Architecture will help
Enterprise Architecture Provides for:
Combining existing services in lieu of writing new ones
Cost reductions through less technologies to support
Better security, reliability, and performance through infrastructure support being
pushed out globally
Levels of Design
Outside of IT
Understand
Brainstorm
Clarify
Analysis
Repeat clarification and analysis
8/7/2019 AIT 600-test
23/24
Go down a level of detail and find or design the components
Levels of Design
IT
Gather Requirements
Design Solution
Implement Solution
Levels of Design
IT
Business Process Level Design
Is there already something available
Define Tasks
How does the user interact with the data
8/7/2019 AIT 600-test
24/24