This unit covers: Distributed database systems: clients, servers, application servers; Database servers, clusters of servers; Distributed database architectures: single-tier, two-tier, multi-tier; Implementation issues: performance, security, transactions; Enterprise application server capabilities: hot deployment, clean shutdown, clustering, farming, load balancing, automatic fail-over; Enterprise application coding: DBMS access, distributed components, messaging services, authentication, authorisation, encryption, transactions; and Enterprise application software development tools. Access to the Universitys computer systems through an Internet service provider is compulsory for off-campus students.
At the completion of this unit students will:
- understand the various ways in which a database application may be scaled to the enterprise level, including: applications being split between clients and servers; servers being split between application servers and database servers; application servers being split into clusters of application servers;
- be able to evaluate the advantages and disadvantages of single-tier, two-tier and multi-tier architectures;
- be aware of some of the pitfalls (and ways to avoid or minimise them) of distributed applications, including: performance problems due to network latency and bandwidth; security problems when transmitting data over an untrusted network; transactional problems when transactions must be distributed over multiple servers;
- be able to evaluate when it is appropriate to use enterprise programming techniques, and when simpler solutions will suffice.
- be able to configure an enterprise application and application server to take advantage of advanced capabilities such as: hot deployment; clean shutdown; clustering; farming; load balancing; automatic fail-over;
- be able to design and implement an enterprise application that makes appropriate use of the following: DBMSs; distributed components; messaging services; security (authentication, authorisation and encryption); transactions; fat clients; thin (web) clients;
- be familiar with a selection of software tools (both GUI and command-line) to speed enterprise application development;
- accept the importance of client and server operating system platforms other than Windows, and therefore the need for technologies that support multiple platforms;
- appreciate the value that an application server adds to an application with remarkably little additional coding effort.
Examination (3 hours): 60%; In-semester assessment: 40%
FIT1007 or GCO1812 or FIT2034 or equivalent.
CSE3450, GCO3823, GCO4823