MC 707 - Computer Information Systems

Download Report

Transcript MC 707 - Computer Information Systems

MP3 / MD740
Strategy & Information Systems
Sept. 29, 2004
The Evolution of Software Technologies,
Computing Architectures,
and their Business Implications:
Software as a Service, Java, Distributed
Computing, and Web Services
Topics Covered
• ASPs / HSVs
– Software as a service
• Computing Platforms and Java
– Understanding the relationship between technology, strategy, and
product adoption
• Architectures
– enable the range of technical options (and hence business options)
available to a firm
– implications regarding cost, flexibility, security
• Host / Terminal Model
– Old school, still enforced
• Client / Server Model
– Request / Response
• Web Services
– Linking applications made easier
Traditional Programs...
… are written for an Operating System (Windows, Macintosh, etc.)
& compiled for a microprocessor (Intel x86, Power, Sun
UltraSPARC, Compaq Alpha, etc.). Compiled code is ready to be
executed by the appropriate microprocessor (fast).
RealPlayer for
Windows
Windows
Compiler
10010
01001...
DrawWindow()…
…
RealPlayer
for Macintosh
GetWindow()…
…
Intel
code
Macintosh
Compiler
PowerPC
code
01011
00101...
"[The Windows API] is so deeply embedded in the source code
of many Windows apps that there is a huge switching cost to
using a different operating system instead. It is this switching
cost that has given the customers the patience to stick with
Windows through all our mistakes, our buggy drivers, our high
TCO [total cost of ownership], our lack of a sexy vision at times,
and many other difficulties. Customers constantly evaluate other
desktop platforms, [but] it would be so much work to move over
that they hope we just improve Windows rather than force them
to move."
-- Microsoft C++ general manager Aaron Contorer explains Windows' greatest selling
point in a 1997 memo to Bill Gates.
[source: San Jose Mercury News GMSV]
Java - a Cross-Platform Standard
• Java Consist of Two Components
– object oriented programming language
– virtual machine (software that executes Java byte code)
• Advantages
– write-once run-anywhere. Runs on any machine with a
JVM (Java Virtual Machine) regardless of OS or
microprocessor
– object-oriented language (reuse, faster dev.)
– secure
• Disadvantages
– slow due to download times
– slow due to interpreting line by line
– inconsistent Java Virtual Machines
Java Programs...
… are written for the Java Virtual Machine (JVM). In theory, the same Java byte
code can execute on any computer with a standard JVM, regardless of OS or
processor (write once, run anywhere). Byte code is interpreted line-by-line for
each processor (slow).
(code is generic &
must be interpreted)
Java Program
Java
Compiler
OpenWindow()…
…
Windows,
Intel JVM
10110
00110...
Macintosh,
PowerPC
JVM
Sun Solaris,
Sparc JVM
01011
01100...
11000
01010...
Java byte
code
Compaq
UNIX, Alpha
JVM
01111
01100...
00010
11110...
…and more
(JVM software is
the interpreter)
Java is Often Confused With...
• JavaScript
– interpreted programming language that co-exists
in same files as HTML (doesn’t need to be
compiled into byte code)
– slower than Java
– easier to program (you see this in your class
assignment)
– supported by Netscape & Microsoft (w/some
consistency problems)
– unlike Java, can only be used to create web
pages (Java can be used to create stand-alone
applications that execute outside the browser).
Java is Often Confused With...
• In-Browser applications (ActiveX, Plugins)
– ActiveX is Microsoft's component technology
architecture (e.g. a way to string together pieces
of reusable code).
– Compiled, so it’s faster than Java, but not cross
platform.
– Unlike Java, it allows full access to the operating
system (including file access commands). This
means that ActiveX components are potentially
less-secure than Java (easier to spread viruses,
deploy malicious programs).
Host / Terminal Model
All programs & data are on
the host (usually
mainframe)
Dumb terminals typically display only text sent from
host. They do not perform any computing & don’t
have a microprocessor. PCs can run terminal
programs to act like dumb terminals & access hosts.
Client / Server Computing
• Client
– a program which makes request of another
program, usually on another computer (e.g. web
browser)
– requests data or other action from servers
• Server
– a program (usually on another computer) that runs
services that are shared among multiple
client/users on a network (ex. E-mail server, web
server, database server).
– responds to client requests (delivers data, performs
tasks)
Client / Server Model
Divide & Conquer
PC executes client code
client code makes a
request
Server executes
server code &
responds to
request, holds
data
Share & Share Alike
sales
accounting
wheels
chemicals
N-tier Client/Server
palm
business logic
pocket pc
web
fat client
(stored on
local disk)
data
France
Italy
EU
USA
Headquarters
NAFTA
Mexico
Local offices
“screen real estate”
- localization
Regional offices
Trade regulations
Global HQ
Company-wide
standards for service,
Central database
Legacy Systems = IS Handcuffs
Many firms have limited to no integration across
geographic areas
functional areas (v-chain)
products, plants, &
business units
Infrastructure: general mgmt, planning, finance, IS
HRM: recruiting, hiring, training, and development
Tech. Development: R&D
Procurement
Inbound
Operations
Outbound
Marketing
logistics
logistics
& Sales
Suppliers
Service
Buyers
Linking Applications
• EDI – Electronic Data Interchange
– Well established (X.12/EDIFACT)
– Expensive over private networks, complex
• Package Applications
– Fast to deploy, but limited to vendor offerings
• Web Services
– A collection of technologies (an alphabet soup of
tech standards & communications protocols) that
together get computer programs to talk to one
another.
– XML, SOAP, UDDI, WSDL, …
Inter-Firm Web Services
alamo.com
southwestairlines.com
dollar.com
hertz.com