stanford gsb high tech club tech 101 – session 1 introduction to software, distributed...
TRANSCRIPT
Stanford GSB High Tech Club
Tech 101 – Session 1
Introduction to Software, Distributed Architectures, and ASPs
Presented by Shawn CarolanFormer Manager of Software Architecture, Open Port Technology
February 22, 2001
MissionMission
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).
TopicsTopics
What is software?How it is developed?And distributed systems?Application Service Providers (ASPs)Industry trends
What is Software?What is Software?
Set of instructions: tells the hardware what to do
Operating System (OS)
Hardware
Application ProgrammingInterfaces (APIs), Libraries
Applications Word, Excel, Quicken
Win32, ODBC, OpenGL
Windows, Sun Solaris, Linux
Intel x86, Sun Sparc, DEC Alpha
How is Software Developed?
How is Software Developed?
Assembly CodeProgramming Languages (C, C++, Java)Scripting Languages (Perl, Tcl, Shell)Other programming “environments” (Application
Servers, Visual Basic, etc.)
CompilerSource CodeExecutable
(Binary)
How is Software Developed?
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?And Distributed Systems?
Required for when applications scale past the capabilities of a single machine.
File ServersDatabase ServersNapsterThe Internet!
And Distributed Systems?And Distributed Systems?
The “Layered” Network Model
Physical
Data Link
Network
Transport
Session
Presentation
Application HTTP, SMTP, SNMP, etc.
TCP
IP
Optical, Copper Wire, Wireless
And Distributed Systems?And Distributed Systems?
Ubiquitous Client/Server Application
Client(Internet Browser)
Server(Apache Web Server)
Domain Name Server(DNS)
And Distributed Systems?And Distributed Systems?
Napster, a peer-to-peer (P2P) application
Napster User 2(Client + Server)
Napster Server(Holds Song to IP mapping)
Napster User 1(Client + Server)
ASPsASPs
Classic client/server, but with much more complex server functionality (it runs the whole application!)
Client 1
Server(session for 1, 2, 3)Client 2
Client 3
ASPsASPs
Drivers IncludeCompany gets to focus on their core competencyEasy upgrades, access to latest technologyEliminates heavy infrastructure costsScalability, availability, backupsFewer IT personnel, developers
Trends, Hot FieldsTrends, 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