Distributed Applications in the Enterprise
Exam#1 Topics and Promises
Fall 2002
Topics
Concurrent Programming Concepts
Threads
Threads versus processes
Runnable versus Thread subclass
Java Support for Concurrency
Threads : either inherit from Thread class or implement Runnable interface
Synchronized : specifies critical section using an object as lock
Locks are reentrant
Locks can be temporarily given up : wait and notify
Even-odd transposition algorithm
Distributed Applications
Channels (send/receive)
Distributed objects (RPC/RMI)
Middleware agent (space/message queue)
Patterns
General concept
Prototype (cloning)
Bridge (delegate)
Decorator (filtering)
Observer
Bean
Java Event Model
Listeners
Single event thread in Java and implications
Model View Controller
Why and what?
Component Assembly
Java Beans
Serialization
Introspection
Property editors
Wiring of Events to Listeners
Security
Fundamental properties
privacy
integrity
authentication
non-repudiation
Symmetric/secret key
Asymmetric/public key
Key agreement protocols
Key management
Hash functions to create digest
Digital Signatures
timstamping to limit repudiation
Databases
Relational concepts
tables, nrows, columns
primary key
SQL
selection
selection criteria
Optimization of relational queries
JDBC:
The process
get a Connection -- may involve name, password
create a Statement (or several)
execute a query -- returns a ResultSet
if necessary, get ResultMetaData
can tell you number of columns, column classes, etc.
process resultSet using next() method (must start with next())
can access columns by name or number (faster)
PreparedStatement
CallableStatement
Updatable ResultSet properties (if available)
Transactions
transaction makes a series of SQL statements appear to be atomic
auto commit -- close commits
commit or rollback before close
ACID
Atomicity - The entire sequence of actions must be either completed or aborted. The transaction cannot be partially successful.
Consistency - The transaction takes the resources from one consistent state to another.
Isolation - A transaction's effect is not visible to other transactions until the transaction is committed.
Durability - Changes made by the committed transaction are permanent and must survive system failur
The above properties are critical to transaction semantics
Promises
A question on synchronized
A question on Even-Odd Transposition sort
A question on TCP/IP versus UDP
Something about MVC
Something about bean design pattern
Several questions related to encryption/decryption
Some simple SQL queries to understand
Something on transactions