Database apps including UI (user interface): we will cover line-oriented and web UI (browser on client).
Databases handle long-term data for dynamic websites all over the world.
Prereq: CS430/630 or equivalent database background, CS310 or Java including Collection classes such as HashMap and TreeSet
Useful: HTML, XML, JUnit, ant, but will cover these.
If your Java isn't strong, consider taking cs637 next term, just as useful as a prerequisite to cs680. See comparison grid cs636/cs637 on class web page.
Look at syllabus. Collect student-info sheets.
Be sure to get a UNIX/Linux account for cs636 by Friday, 9/8, to list your username for the needed Oracle and mysql accounts, and access to topcat.cs.umb.edu.
Assignments: hw, programming projects, by pairs later on.
hw1 due Mon, 9/18 is available—see link from the class web page at www.cs.umb.edu/cs636.
Class project on music store from Murach’s text. See pg. 664 for non-portable SQL for tables. Challenge: see if you can make it portable.
Reading: Murach, Chap. 1. You could also start reading Chap. 11-12 on databases (specifically MySql), starting at pg. 364. I’ll create a mysql database for you using mysql on topcat.cs.umb.edu. We’ll also use Oracle.
1. Development Tools
Java, Eclipse, Ant
Develop on PC, deliver on Linux
Eclipse has built-in help. We'll cover ant soon.
See dev setup instructions linked to class web page www.cs.umb.edu/cs636. Try this by Monday. Also apply for UNIX account.
TDD Test-Driven Development
--Tests First or Very soon
- we will use JUnit for unit testing
Inversion of Control “Hollywood Principle”
--don’t call us, we’ll call you
-- Each object should only passively accept references to other objects, not itself create a dependent object.
---> good software, better testingDetails: Problem with creation of a dependent object:
Idea of enterprise development—serious programming efforts, lasting years we hope, maintainable.
Involving different kinds of people: artistic types, programmers, etc.
3. Client Server vs. Web-based Architecture
Note that the JDBC connection is relatively long-lived here, usually lasting the whole time the client is running.
4. Web-based (Browser as Universal User Interface) See Murach, pp. 6-11
HTTP over TCP/IP is used between the browser and the web server.
The web server program hands off the request to the web app, which runs on the same system as the web server. The web app makes a JDBC connection (over TCP/IP) to the database, which may be running on the same computer system as the web server, or on another computer. (In fact, the web server and web app may share a single process.)
The JDBC connections are short-lived, lasting only for one HTTP request cycle. But really, they are being “borrowed” from a pool of live connections and used for the short time. More on this later.
But back to this course: program in Java, use HTML and JSP