Stanford GSB High Tech Club Tech 101 – Session 1

advertisement
Stanford GSB High Tech Club
Tech 101 – Session 1
Introduction to Software, Distributed
Architectures, and ASPs
Presented by Shawn Carolan
Former Manager of Software Architecture, Open Port Technology
February 22, 2001
Mission
To equip the MBA audience with a fundamental
understanding of the software industry and its
terminology in hopes that they’ll sound better in
interviews, and have a better idea where to look
for more information (highly recommended).
Topics
What is
software?
How it is developed?
And distributed systems?
Application Service Providers (ASPs)
Industry trends
What is Software?
Set
of instructions: tells the hardware what to do
Applications
Application Programming
Interfaces (APIs), Libraries
Operating System (OS)
Hardware
Word, Excel, Quicken
Win32, ODBC, OpenGL
Windows, Sun Solaris, Linux
Intel x86, Sun Sparc, DEC Alpha
How is Software Developed?
Assembly Code
Programming
Languages (C, C++, Java)
Scripting Languages (Perl, Tcl, Shell)
Other programming “environments” (Application
Servers, Visual Basic, etc.)
Source Code
Compiler
Executable
(Binary)
How is Software Developed?
 Product
management – Helps gather customer and
market requirements, prioritize features, negotiate
schedules, position product, etc.
 Programmers – Research available
tools/libraries/components, plan software architecture,
write source code, fix bugs/improve efficiency
 Quality Assurance (QA) – Tries to break the software
before it is release to customers. Find bugs.
 Client Support – Interfaces with customers to help them
solve problems and answer questions. Often file bugs.
And Distributed Systems?
Required for when applications scale past the
capabilities of a single machine.
File Servers
Database Servers
Napster
The Internet!
And Distributed Systems?
The “Layered” Network Model
Application
Presentation
Session
Transport
Network
Data Link
Physical
HTTP, SMTP, SNMP, etc.
TCP
IP
Optical, Copper Wire, Wireless
And Distributed Systems?
Ubiquitous Client/Server Application
Domain Name Server
(DNS)
Client
(Internet Browser)
Server
(Apache Web Server)
And Distributed Systems?
Napster, a peer-to-peer (P2P) application
Napster Server
(Holds Song to IP mapping)
Napster User 1
(Client + Server)
Napster User 2
(Client + Server)
ASPs
Classic client/server, but with much more complex
server functionality (it runs the whole application!)
Client 1
Client 2
Client 3
Server
(session for 1, 2, 3)
ASPs
Drivers Include
Company gets to focus on their core competency
Easy upgrades, access to latest technology
Eliminates heavy infrastructure costs
Scalability, availability, backups
Fewer IT personnel, developers
Trends, Hot Fields
Outsourcing apps, infrastructure (ASPs,
LoudCloud)
Outsourcing development (BaliCamp)
Proliferation of devices (IP v6)
Ad-hoc, often wireless networks (Jini)
Standard data exchange (XML)
Peer-to-peer applications
Download