Skip to main content
Skip header

Enterprise Application Development

* Exchange students do not have to consider this information when selecting suitable courses for an exchange stay.

Course Unit Code460-4104/03
Number of ECTS Credits Allocated5 ECTS credits
Type of Course Unit *Choice-compulsory type A
Level of Course Unit *Second Cycle
Year of Study *Second Year
Semester when the Course Unit is deliveredSummer Semester
Mode of DeliveryFace-to-face
Language of InstructionCzech
Prerequisites and Co-Requisites Course succeeds to compulsory courses of previous semester
Name of Lecturer(s)Personal IDName
JEZ04Ing. David Ježek, Ph.D.
Summary
The course defines the characteristics of enterprise applications and then deals with multi-layer architecture, as one of the most common architectures of enterprise applications. Description and purpose of 3 common layers is discussed with students and the use of design patterns in these layers are described. Furthermore, the subject deals with other used approaches and techniques such as web services, architectural style REST, architecture of micro services and others. Students are also introduced to the technologies of the JAVA platform, and how to integrate and use the mentioned patterns and techniques in these technologies.
Learning Outcomes of the Course Unit
Attendees will understand how enterprise applications are developed. They will understand and be able to apply patterns, techniques and approaches commonly used for the development of these applications. This area of ​​knowledge includes:
- Definitions of Enterprise applications
- Architectures suitable for Enterprise applications
- Technologies used in creating Enterprise applications
- Use of patterns during enterprise application development
- Presentation layer patterns: MVC, Page Controller, Front Controller, Template View, Transform View, Intercepting Filter
- Domain layer patterns: Table Module, Transaction Script, Domain Model, Inversion of Control and Dependence Injection, Proxy Pattern
- Aspect-oriented programming
- Data layer patterns for data access: Table Data Gateway, Row Data Gateway, Active Record, Data Mapper, Data Access Object
- Behavior patterns for object-relation mapping: Unit of Work, Identity Map, Lazy Load
- Selected structural patterns for object-relation mapping: Serialized LOB, methods of inheritance mapping
- Web services
- Architectural style REST
- Service-oriented architecture
- Architecture of micro-services
- Communication via message passing
Course Contents
Lectures:
1. Definitions of Enterprise applications. Architectures suitable for Enterprise applications.
2. Technologies used in creating Enterprise applications
3. Use of patterns during enterprise application development
4. Presentation layer patterns: MVC, Page Controller, Front Controller, Template View, Transform View, Intercepting Filter
5. Domain layer patterns: Table Module, Transaction Script, Domain Model, Inversion of Control and Dependence Injection, Proxy Pattern
6. Aspect-oriented programming
7. Data layer patterns for data access: Table Data Gateway, Row Data Gateway, Active Record, Data Mapper, Data Access Object
8. Behavior patterns for object-relation mapping: Unit of Work, Identity Map, Lazy Load
9. Selected structural patterns for object-relation mapping: Serialized LOB, methods of inheritance mapping
10. Web services
11. Architectural style REST
12. Service-oriented architecture
13. Architecture of micro-services
14. Communication via message passing

Exercises (PC classroom):
1. Introduction to technologies for the development of enterprise applications on the JAVA platform
2. First implementation of application skeleton.
3. Implementation of the client part of the presentation layer.
4. Implementation of the server part of the presentation layer using patterns.
5. Implementation of the domain layer of the application using patterns.
6. Implementation of extension functionality using AOP.
7. Implementation of the application data layer using patterns.
8. Implementation of data access using JPA.
9. Implementation of web service and client application.
10. Implementation of REST interface.
11. Implementation of communication using JMS between two modules.
12. Consultations on the implementation of semester projects.
Recommended or Required Reading
Required Reading:
1. FOWLER, Martin. Patterns of enterprise application architecture: a systematic introduction. Boston: Addison-Wesley, c2003, xxiv, 533 p. ISBN 03-211-2742-0.
2. Fielding, Roy Thomas. Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, University of California, Irvine, 2000. Dostupný z WWW: https://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf
3. Newman, S. Building microservices : designing fine-grained systems. O'Reilly Media, 2015. ISBN 978-1491950357.

1. FOWLER, Martin. Patterns of enterprise application architecture: a systematic introduction. Boston: Addison-Wesley, c2003, xxiv, 533 p. ISBN 03-211-2742-0.
2. Fielding, Roy Thomas. Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, University of California, Irvine, 2000. Dostupný z WWW: https://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf
3. Newman, S. Building microservices : designing fine-grained systems. O'Reilly Media, 2015. ISBN 978-1491950357.

Recommended Reading:
1. Alur, Deepak, Malks, Dan, Crupi, John. Core J2EE Patterns: Best Practices and Design Strategies Prentice Hall Press, 2013. ISBN 9780133807462.
2. Core J2EE Patterns: Patterns index page [online]. 2001-2002 [cit. 2014-09-05]. Dostupný z WWW: http://www.corej2eepatterns.com
1. Alur, Deepak, Malks, Dan, Crupi, John. Core J2EE Patterns: Best Practices and Design Strategies Prentice Hall Press, 2013. ISBN 9780133807462.
2. Core J2EE Patterns: Patterns index page [online]. 2001-2002 [cit. 2014-09-05]. Dostupný z WWW: http://www.corej2eepatterns.com
Planned learning activities and teaching methods
Lectures, Tutorials, Project work
Assesment methods and criteria
Task TitleTask TypeMaximum Number of Points
(Act. for Subtasks)
Minimum Number of Points for Task Passing
Credit and ExaminationCredit and Examination100 (100)51
        CreditCredit40 (40)20
                Semestrální projektSemestral project40 20
        ExaminationExamination60 (60)30
                Písemná zkouškaWritten examination60 30