220 likes | 368 Views
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
E N D
MP3 / MD740Strategy & Information SystemsSept. 29, 2004The 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 Intel code 10010 01001... DrawWindow()… … RealPlayer for Macintosh Macintosh Compiler PowerPC code GetWindow()… … 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 Java byte code 00010 11110... OpenWindow()… … Windows, Intel JVM Macintosh, PowerPC JVM Sun Solaris, Sparc JVM Compaq UNIX, Alpha JVM …and more (JVM software is the interpreter) 11000 01010... 01111 01100... 10110 00110... 01011 01100...
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 Server executes server code & responds to request, holds data PC executes client code client code makes a request Share & Share Alike sales wheels accounting chemicals
N-tier Client/Server palm business logic data pocket pc web fat client (stored on local disk)
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 Suppliers 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