Texts
Java Platform, Enterprise Edition: The Java EE Tutorial, Release 7. Jendrock, E. et al (2014) [Online] Available at: https://docs.oracle.com/javaee/7/JEETT.pdf [Accessed: 04/04/2017]
The Java EE Tutorial Volume 1 5th ed., Jendrock, E. et al , Addison-Wesley, ISBN: 978-0321994929
The Java EE 7 Tutorial Volume 2 5th ed., Jendrock, E. et al (2014), Addison-Wesley,
ISBN: 978-0321980083
Patterns of Enterprise Application Architecture, Fowler, M. (2003), Addison-Wesley,
ISBN: 978-0321127426
Developing Enterprise Web Services: An Architect¿'s Guide, Chatterjee, S. and Webber, J. (2004), Prentice-Hall, ISBN: 978-0131401600
Enterprise Android: Programming Android Database Applications for the Enterprise, Mednieks, Z.; Meike, G.B.; Dornin, L. (2013), Wrox, ISBN: 978-1118183496
Resources
Java SDK
Eclipse IDE including the Android plug-in
Android device emulator
Indicative Content
Common architectures of enterprise applications: two-tier, three-tier, multi-tier
Rich clients and browser-based clients
Component-based enterprise applications as exhibited by Java Enterprise Edition (EE)
Scalability, maintainability, reliability, availability, extensibility, performance, manageability, and security of enterprise applications
Integration of messaging in enterprise applications - e.g. web services and XML, HTTP and Java Messaging Service (JMS)
Web-tier technology - e.g. Java servlets and JavaServer Pages (JSP)
Business-tier technology - e.g. Enterprise JavaBeans (EJB 3.0) model - entity classes, session beans, message-driven beans
Persistence technology - e.g. Java EE container-managed persistence, Java Persistence API (JPA), container-managed transactions, bean-managed transactions
Modelling enterprise and mobile applications
Architecture patterns for enterprise applications
Web-centric and EJB-centric enterprise applications
Distribution vs. clustering of server-side components
Integration of mobile applications (e.g. Android apps) into enterprise applications
- Using the Web-browser app to access the enterprise application
- Using Android Webview to access the enterprise application
- Accessing web services exposed by the enterprise application
- Using JSON data
- Data caching
LEARNING OUTCOMES
1. CRITICALLY EVALUATE VARIOUS ARCHITECTURES OF ENTERPRISE APPLICATIONS INCLUDING RELEVANT SECURITY CONCEPTS
[Knowledge & Understanding; Learning]
2. DESIGN AN ENTERPRISE APPLICATION CRITICALLY EVALUATING ALTERNATIVES AND JUSTIFYING SELECTIONS.
[Analysis; Communication]
3. IMPLEMENT AN ENTERPRISE APPLICATION.
[Application]
4. DESIGN AND IMPLEMENT AN APPLICATION FOR A MOBILE DEVICE THAT INTEGRATES WITH AN ENTERPRISE APPLICATION.
[Application; Knowledge & Understanding]
Module Learning Strategies
52 hours of lectures presenting key topics and concepts.
26 hours of practical sessions in which students will build a portfolio of work involving the application of concepts presented in the lectures to solve problems in given contexts. An O-O case tool may be used which has predefined patterns that can be adapted for solving given problems.
Module Additional Assessment Details
ASSIGNMENT 1 Weighting 50%: Practical assignment to design and implement an enterprise application, with a report (1000 words) critically evaluating various architectures of enterprise applications, justify the choice made for this assignment. (Learning outcomes 1, 2 and 3)
ASSIGNMENT 2 Weighting 50%: Practical assignment to design and implement a mobile app that integrates with an enterprise application, with a report (1000 words) critically evaluating appropriate security concepts. (Learning outcomes 1, 2 and 4)
Module Special Admissions Requirements
Prior study of COSE50586: Web and Mobile Application Development or equivalent
Web Descriptor
Do you want to learn the principles and practices of using Software Engineering to design, implement and test enterprise applications? If so, the first semester of this module will help you gain an in-depth, hands-on experience of doing just that with the Java Enterprise Edition framework. What you learn in Java will be transferable to enterprise applications written in other programming languages. In the second semester, you will learn some advanced Android techniques, and write an Android app that will integrate with the enterprise application you wrote in semester 1.