2nd Cycle Studies - Mestrado
Theoretical classes, using audiovisual means, with detailed exposition of concepts, principles and fundamental theories and with the resolution of basic practical exercises that demonstrate the practical interest of the subject and exemplify its application to real situations. Practical laboratory classes, where the teacher should support the students in their execution of the practical assignments. The evaluation consists of a final exam and practical assignments. The exam will include theoretical questions, in which students will have to demonstrate the comprehension of the subject.
This course aims to provide students with advanced knowledge and competences to integrate and connect applications and systems with particular attention to the following cases:
- interconnection of different modules of the same large application, with particular emphasis on aspects such as performance, security and monitoring;
- integration of computer applications from different sources, within the same organization;
- integration of computer applications between different organizations.
Unfortunately, many of the real systems tend to use ad hoc solutions that are extremely fragile and ill-prepared to evolve. To solve these problems, students should learn how to integrate systems in a structured way. This course has a strong emphasis on integration with middleware systems, in particular, using approaches such as Service Oriented Architectures (SOA), Enterprise Service Buses (ESB), and reactive programming.
Data representation formats:
- Extensible Markup Language (XML), Schema Languages: DTD and XSD. Other XML technologies: XPath and XSLT.
- Other technologies: Apache Thrift and gRPC.
Java Enterprise Edition Technologies:
- Enterprise Java Beans & Java Persistence API.
- Java Persistence Query Language. Context-Dependency Injection.
- Logging (in the context of JavaEE).
- Inversion of Control, Dependency Injection and Service Locator (in the context of Java EE).
Distributed Transactions, Two-Phase Commit, Business Activities, and Isolation.
Message Oriented Middleware & Reactive Programming.
Fundamental Problems in Large-Scale Application Integration ("Widgets & Gadgets" Case Study).
Service Oriented Architecture (SOA) and Enterprise Service Bus (ESB).
Introduction to SAP NetWeaver.
Integration with Legacy Systems: Challenges and Approaches.
Basic Techniques in Reliability and Fault-Tolerance.
Filipe João Boavida Mendonça Machado de Araújo
• Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions, by Gregor Hohpe & Bobby Woolf, Addison-Wesley Professional, ISBN: 0321200683
• Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services, by Thomas Erl, Prentice Hall PTR, ISBN: 0131428985
• Building Microservices-Designing Fine-Grained Systems by Sam Newman, O'Reilly Media, ISBN-13: 978-1491950357
• IT Architectures and Middleware: Strategies for Building Large, Integrated Systems (2nd Edition), by Chris Britton, Peter Bye Addison-Wesley Professional, May 2004
• Enterprise Application Integration, by David Linthicum, Addison-Wesley, ISBN 0201615835, December 1999
• Next Generation Application Integration, by D. Linthicum, Addison-Wesley, ISBN 0201844567, 2004
• Developing Java Web Services: Architecting and Developing Secure Web Services Using Java, by Ramesh Nagappan et. al., Wiley International
• XML Bible (2nd Edition), by Elliotte Rusty Harold, Wiley, 2001, ISBN 0764.