Information on individual educational components (ECTS-Course descriptions) per semester

  
Degree programme:Bachelor Computer Science - Software and Information Engineering
Type of degree:FH BachelorĀ“s Degree Programme
 Full-time
 Summer Semester 2023
  

Course unit titleEnterprise Applications
Course unit code024717040201
Language of instructionGerman
Type of course unit (compulsory, optional)Compulsory
Semester when the course unit is deliveredSummer Semester 2023
Teaching hours per week8
Year of study2023
Level of course unit (e.g. first, second or third cycle)First Cycle (Bachelor)
Number of ECTS credits allocated10
Name of lecturer(s)Thomas FEILHAUER
Andreas GOTTARDI
Andrea JANES
Peter STADELWIESER
Michael ZANGERLE


Prerequisites and co-requisites
  • Knowledge of network protocols up to the transport layer
  • Experiences with Object-oriented programming
  • Good working knowledge in Java
  • Basic knowledge in database systems
  • Experience in the development of Web applications
  • Knowledge of XML & JSON
Course content

The course will cover the concepts and technologies of heterogeneous applications across enterprise boundaries: middleware, client-server systems with alternatives, forms of message exchange, distributed object-based method calls, directory services, messaging, Jakarta EE and related services, web services, synchronization, resilience, consensus in distributed applications. During the project, student teams develop a complex distributed system with different APIs from a combination of the learned technologies.

Learning outcomes

At the end of the course the student is expected to

  • know the characteristics of distributed systems, different distributed computing paradigms and efficient communication protocols, e.g. (Multi-)threading, Sockets, WebSockets
  • have experience with distributed objects in Java and some specific middleware, including JMS, EJB, and Web services along with the peculiarities of asynchronous communication technologies
  • have insight into the operation and programming of directory services, e.g. LDAP
  • be able to do practical programming of enterprise wide applications using Java, Jakarta EE, Web services/Microservices, and Middleware for Cross-Language Distributed Systems and can extend the implemented back end systems by appropriate clients, e.g. Web front ends
  • have insight into the concepts of timing and synchronization in distributed systems
  • have basic knowledge of reliability, fault tolerance and security in distributed systems
Planned learning activities and teaching methods

Lecture, laboratory work, project teamwork project work with coaching; integrated lecture

Assessment methods and criteria

Assessment of project work developed within a team (60%) and final exam (40%).

For a positive grade, a minimum of 50% of the possible points must be achieved in each part of the examination.

Comment

Not applicable

Recommended or required reading
  • Abernethy, Randy (2019): Programmer's guide to Apache Thrift. Shelter Island: Manning Publications. 
  • Christudas, Binildas (2019): Practical Microservices Architectural Patterns: Event-Based Java Microservices with Spring Boot and Spring Cloud. Available at: URL: https://login.proxy.bib.uottawa.ca/login?url=https://learning.oreilly.com/library/view/-/9781484245019/?ar&orpq&email=^u (Accessed on: 27 September 2019).
  • Coulouris, George F. et al. (2012): Distributed systems: concepts and design. 5th ed. Boston: Addison-Wesley. 
  • Coward, Danny (2014): Java WebSocket programming. New York: McGraw-Hill. 
  • Finnigan, Ken (2019): Enterprise Java microservices. Shelter Island, NY: Manning Publications. 
  • Goncalves, Antonio (2013): Beginning Java EE 7. Available at: URL: http://dx.doi.org/10.1007/978-1-4302-4627-5 (Accessed on: 19 December 2014).
  • Horstmann, Cay S.; Cornell, Gary (2013): Core Java. Ninth edition. Upper Saddle River, NJ: Prentice Hall. 
  • Ihns, Oliver et al. (2011): EJB 3.1 professionell Grundlagen- und Expertenwissen zu Enterprise JavaBeans 3.1 - inkl. JPA 2.0. Heidelberg: dpunkt-Verl. 
  • Indrasiri, Kasun; Siriwardena, Prabath (2018): Microservices for the enterprise. New York, NY: Springer Science+Business Media, LLC. 
  • Kalin, Martin (2013): Java Web services: up and running. 
  • Kocher, Parminder Singh (2018): Microservices and containers. Boston: Addison-Wesley. 
  • Marcus Schießer; Martin Schmollinger (2014): Workshop Java EE 7: Ein praktischer Einstieg in die Java Enterprise Edition mit dem Web Profile. 2nd Ed. dpunkt.verlag GmbH. (Accessed on: 19 December 2014).
  • Rakowski, Krzysztof (2015): Learning Apache Thrift: make applications communicate using Apache Thrift. Birmingham Mumbai: Packt Publishing (= Packt open source). 
  • Richardson, Chris (2019): Microservices patterns: with examples in Java. Shelter Island, New York: Manning Publications. 
  • Röpstorff, Sven.; Wiechmann, Robert. (2012): Scrum in der Praxis: Erfahrungen, Problemfelder und Erfolgsfaktoren. Heidelberg, Neckar: dpunkt. 
  • Rubinger, Andrew Lee.; Monson-Haefel, Richard.; Burke, Bill. (2010): Enterprise JavaBeans 3.1. Beijing; Farnham; Sebastopol, CA: O'Reilly. 
  • Sharma, Sourabh (2019): Mastering microservices with Java: master the art of implementing microservices in your production environment with ease. Birmingham, UK: Packt Publishing. Available at: URL: http://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&db=nlabk&AN=2036190 (Accessed on: 27 September 2019).
  • Sriganesh, Rima Patel; Brose, Gerald; Silverman, Micah (2006): Mastering enterprise JavaBeans 3.0. Indianapolis, Ind.: Wiley Pub. 
  • Tanenbaum, Andrew S.; Steen, Maarten van (2007): Distributed systems: principles and paradigms. 2nd ed. Upper Saddle RIiver, NJ: Pearson Prentice Hall. 
  • Wirdemann, Ralf. (2011): Scrum mit User Stories. München: Hanser, Carl. 
  • Zörner, Stefan (2013): LDAP für Java-Entwickler: Einstieg und Integration. [s.l.]: entwickler press.

 

Mode of delivery (face-to-face, distance learning)

Classroom teaching, face-to-face Attendance mandatory for lab lessons, coaching lessons, and for the final presentation of the project results

Summer Semester 2023go Top