An Overview of
Systems are divided into pieces: clients and servers
“Clients” are programs that handle screens and are used by people
“Servers” are programs that use databases and are used by client programs
Clients and Servers run on different computers and communicate across the network
There are various flavors of client/server, generally based on whether business logic and processing resides in client or server
2-Tier: Programmer’s View
3-Tier: Programmer’s View
3-Tier: Organization’s View
Scaleable: Hardware matched to volume requirements
Fast: Network use optimized for speed, throughput
Available: Redundancy (cheap) and fault-tolerance (expensive) eliminate single points of failure
Maximize Carry Over from One Project to Another
Common architecture across projects provides framework for design. I.M. Pei: “God is in the details.”
Extensible: Re-usable software components and common hardware & support infrastructure. API comes out in the wash
PIMS projects: 185; Design Staff: ~20
Efficient use of resources: (people, machines, bandwidth, programs, procedures)
Shorter development cycles due to common infrastructure and shared components
Better business model; business rules build bridge between programmers and users
High-performance systems environment
System Administration is more complex
Long-term planning, both on the business and technology side, is crucial to realize benefits
First-time is not fast
Ad Hoc reporting - “Data Mining” - is difficult
Three-tier client/server is:
Cost-effective for large-scale, long-term development
Necessary for fast, global, “mission-critical” applications
Reality is hybrid:
Legacy (One-tier) systems aren’t going away anytime soon (They’ll mutate into ‘servers’)
Two-tier client/server is effective for ad hoc MIS, LAN-only applications, and rapid ‘concept’ development
Transaction Processing: Two or more discrete actions are tied together and executed as a whole, or not at all.
Database Partitioning: Database is split onto two or more separate databases.
Distributed Query Processing: A single SQL query is executed against two or more databases.
Database Replication: Database is distributed/shadowed by special software, usually “in-front” of SQL server. Data is in two places at once.
High-Availability / Fault-Tolerance: CPUs, Memory, and Disks are redundant within the same computer, “Hot-Swappable.” Very Expensive.
Redundancy: Two identical components are up and available
Security/Encryption: Network traffic is protected from forgery & eavesdropping.
Data Warehousing / MIS: A flavor of database partitioning. Operational data is separated from reporting (MIS) data. Warehousing implies ad hoc queries over very large data sets.
Object Oriented Programming: Programming technology for better abstraction, easier code re-use. Realizing benefits requires skilled programmers and strong, steady vision.