This comprehensive course explores a variety of modern Java frameworks and technologies that can be used for developing mission-critical complex enterprise applications. The emphasis is on use of the latest Java EE platform, its set of underlying specifications, designing and developing server-side application components. Students will learn through having hands-on experience in building multi-tier based distributed enterprise applications, comparing and using a variety of Java EE design patterns, and a rich set of server-side components and technologies, web-enabled by modern design practices and communication protocols. Students will review Java Database Connectivity (JDBC) API, and will implement a data access tier to a relational database using Java Persistence API (JPA) and variety of data access patterns; They will implement synchronous and asynchronous server-side business logic using stateless and stateful session EJBs, message-driven beans and EJB Timer service; integrate server-side logic with the web-tier components using legacy server-side and more modern RESTful API approaches that include JSON and other data formats. Other critical Java EE infrastructure services will be discussed, including the Java Naming and Directory Interface (JNDI), the Java Message Service (JMS), the Java Transaction (JTA) API, and Java EE security. Students will review and discuss Spring framework and inversion of control, as well as some alternative solutions for developing and deploying enterprise applications. Students will design and implement several significant programming projects and deploy them to a Java EE environment that they will manage.
605.202 Data Structures; 605.681 Principles of Enterprise Web Development or equivalent.
Students will be assumed to already have strong Java skills and to be comfortable with IDEs.