150 likes | 336 Views
Database scalability eras. Client/Server. ?. X. Mainframe. File-sharing. Unlimited Users. n-tier Internet Client/Server Business components, servlets. 3-tier Internet Client/Server pooling connection. 1000s of Users. Scalability. 3-tier Internet Client/Server
E N D
Database scalability eras Client/Server ? X Mainframe File-sharing Unlimited Users n-tier Internet Client/Server Business components, servlets... 3-tier Internet Client/Server pooling connection 1000s of Users Scalability 3-tier Internet Client/Server single stateless connection per CGI call 100s of Users 2-tier Client/Server user=process LAN based Max users depends upon file-handles Several Users PC based Single user PC based, file-level locking Single user or Peer-to-Peer Single User Late 1980s Mid-1990s Now Time
Database scalability eras Client/Server File-sharing Unlimited Users Java applications, applets etc Coldfusion, ASP 1000s of Users CRUD tutorials Scalability Common Gateway Interface: Perl scripts... Many early web-enabled apps 100s of Users Oracle Forms application on internal network Access, Paradox Several Users Dataease, Paradox, Dbase... Access, Paradox Single User Late 1980s Mid-1990s Now Time
Early Internet Client/Server HTML 2) Send HTTP 3) Wake up and process request 5) Browser interprets HTML Internet TCP/IP HTML Documents 4) Return required HTML Clients Server 1) Select URL Web Browsers
Data aware Internet Applications 2) Send HTTP 3) Wake up and process request 4) get some data CGI or Web-server extender module 1) Select URL 6) Browser interprets HTML Web Server Dbms 5) Return required HTML with data embedded
BC4J Alternative (simplified) JSP Runtime Environment BC4J Application Module View Object <jsp:useBean > Appserver DB server(s) Browser HTTP One or more physical servers
Issues with web-enabled databases • Statelessness is a big issue: • How do you carry information between forms? • How do you carry information throughout a session? • How do you recognise a user? • How do we keep down the connection overhead?
Issues with web-enabled databases • Where do we do: • data management • data manipulation • business logic • input validation • presentation processing ?
Fat Client Applications Serving the data GUI Server-side processing of business logic: triggers, stored procedures... Application logic GUI Thin Client Applications Issues with web-enabled databases
Jargon-busting • 3-tier • In the current incarnation: • Database Server • Application Server • Client • Advantages: • separation of business logic • Scalability • Robust
Jargon-busting • Web Server • aka HTTP Server • piece of software which basically acts as a document handler typically in tier2 • You ask it for one of its HTML documents by requesting its URL using HTTP • Examples include • Microsoft IIS, Apache
Jargon-busting • HTTP Server extension modules • Allow for the creation of dynamic HTML, especially useful for handling getting data from (or to) a DBMS • The modules are actually DLLs • Administrator configures .conf file to include the extensions • Examples include: • ColdFusion, ASP
Jargon-busting • Servlet Engines • Do much the same as an extension does in that they handle non-HTML URLs and allow for the creation of dynamic HTML • An environment for running Servlets, and compiling JSPs • Written in Java for running Java code • Examples include: • Jserv, JRun
Jargon-busting • Applet • An application with its arms tied behind its back! • “inside the sandbox,” means must run from within a browser and not make OS I/O calls • Is called from, and killed by, the Browser • should have an Init(), not a main() • Its more sub-classing a GUI than writing an application
Jargon-busting • JavaBean • “A reusable software component that can be manipulated in a builder tool” • blackbox interface that permits users to interact with the Bean • Can be GUI related or non-visual objects • Enterprise JavaBean • EJBTM is a server-side component model • the EJB server itself handles the underlying transaction management
Learn How To • CRUDing With......series: • ASP • Coldfusion • Perl • Connecting • Steve Broadbridge's links