Slide 1Client Server ModelServer Applications (Software)Client Applications (Software)Client-Server AdvantagesClassic Example: Early Banking SystemsClassic Example: Early Banking SystemsClassic Example: Early Banking Systems3-Tiered Systems3-Tiered SystemAdvantage of 3-Tier SystemsInternet vs. WWWWWW – Ultimate Client-Server SystemFirst Web ApplicationsFirst Web ApplicationsFirst Web ApplicationsFirst Major ImprovementColdFusionColdFusion ExampleColdFusionProblems with ColdFusionAlternative’s to ColdFusionWWW – Ultimate Client-Server SystemWeb Application ArchitectureBird Book pp 1-14Client Server ModelServer Applications (Software)Management and maintenance of Data includingUser login dataApplication dataData processingCentralized Access via LoginClient Applications (Software)Provides user interfaceStores some settingsCan do some data processingLittle to no application data storageSame view of data no matter where you loginClient-Server AdvantagesCentralized Data StorageNo data redundancy (no duplication of data)Reduces data dependenciesIf data is stored on each user’s system and each system is different than data depends on how the user system is designedData can not be shared easily if such dependencies existClassic Example: Early Banking SystemsNetwork: Local Area Network (LAN) covering local office branch.Server: Mainframe-like server “in the back” running custom banking systemClient: Windows PC with client interface for each bank teller.Data is the same no matter what teller you go to.Data is NOT the same if you go to another branch unless servers exchanged some data at night.Classic Example: Early Banking SystemsThe Obvious Future:Change the LAN to a wide area network covering all the branches.Get rid of the individual servers at each branchHave clients connect to central server where ALL the banking data is stored.Classic Example: Early Banking SystemsThe Obvious Problems:Large banks could have thousands of tellers connecting to the central server.Combining data from all branches requires severs with lots of storage capacity.Branch data could be stored in different formats.Lack of Standardization.3-Tiered Systems3-Tiered SystemDatabase Tier (Database Server)Data storage and low level data manipulationServer Tier (Application Server)Manage client connections and data processingClient Tier (Client Software installed locally)User interface and some data processingAdvantage of 3-Tier SystemsCentral Database Server accessed by multiple Application ServersIn turn, each Application Server could independently manage thousands of usersDatabase Server is specially designed to do its jobDatabase Operations: Update, Insert, Remove, etc.Lots of disk storage and memory neededApplication Servers can be added to support more users or DIFFERENT APPLICATIONSServer Operations: Complex application-dependent computationsLots of processor power neededInternet vs. WWWInternet is the infrastructure that makes the WWW work.Packet SwitchingTCP/IP ProtocolPhysical InfrastructureFiber-optics lines, wiresSatellites, Cable ModemsRouters, Hubs, Network Cards, WiFi systems, etc.WWW is just one of many “virtual networks” built on the Internet.Websites: http, https, etc.Email: pop, imap, etc.Other systems: ftp, instant messaging, etc.Note: Even to this day companies have “private virtual networks” that use the Internet, but are proprietary, locked-down.WWW – Ultimate Client-Server SystemAlready StandardizedBuilt on the Widest Area Network you could imagine, i.e., The InternetStandardized Clients that are free to useIE, Firefox, Safari, etc.Lots of Servers already in placeApache, Windows Server (IIS), etc.Database ServersUmm, this was initially missingFirst Web Applications1993 – Rob McCool proposed a framework called CGI (Common Gateway Interface)Data passed from a web browser to the server GET - passed via URL variablesPOST - passed via HTML forms Web server daemon (httpd) could then make remote system callsExampleWeb server could run a C++ program and write the output to public HTML folderWeb server would send response back with location of the output.First Web ApplicationsUsing CGI, web server could run C++ programsPerl ProgramsFortran ProgramsC++ has library functions that allow you to connect to a number of different databases:OracleSybaseDB2First Web ApplicationsProblem:To develop web applications you need to knowExactly how your server is configuredHTML formsGET and POST conventionsC++ database librariesSQL languageGetting all these things to work together is a pain in the ***.First Major Improvement1995 – JJ Allaire developed “a hack” that allowed a web servers to communicate with other systems, namely a database system.Key: Instead of using “a middle-man” C++, Perl, Java, etc.Developer could directly add code to the their web pagesUsing a special Markup Language, this code could be embedded in any web page.Worked seamlessly with HTML formsServer process code directlyColdFusionJJ Allaire went on to form a company Allaire which developed his idea into a product called ColdFusionColdFusion Markup Language (CFML)ColdFusion Server (addon to popular Web Servers like Apache, Microsoft’s IIS).Notes:Allaire was bought by Macromedia 2001.Macromedia was bought by Adobe in 2005.ColdFusion Example<cfset droplist = "colorlight,colordark"><cfoutput> <form action="#cgi.script_name#" method="get" name="choosecolors" id="choosecolors"> <fieldset> <legend>Customize Site</legend> <label for="colorlight">light color</label> <input type="text" name="colorlight" id="colorlight" size="10" value="#url.colorlight#" /><br /> <label for="colordark">dark color</label> <input type="text" name="colordark" id="colordark" size="10" value="#url.colordark#" /> #getTokensMinusArg('inputs',droplist)# <input type="submit" name="changecolors" value="Reload" /> </fieldset> </form></cfoutput>ColdFusionThe term Cold Fusion refers to a nuclear reaction that can occur at room temperatureIn the 1980’s it was believed that Cold Fusion was a physical possibility.If Cold Fusion could be achieved then almost unlimited power could be generated by a reaction you could perform in your own kitchen. JJ
View Full Document