Objectives and outcomes
Familiarity with the concepts of advanced programming of large-scale applications (Enterprise applications). Familiarity with the basic concepts on which advanced enterprise programming is based. Knowledge of the basic concepts of enterprise applications. Knowledge of multi-tiered applications. Familiarity with distributed programming and the concept of an application server. Knowledge of mechanisms for object-relational mapping. Knowledge of the concepts of transactions, isolation and locking. Knowledge of the mechanisms that enable developing enterprise applications, such as reflection, instrumentation and management of security mechanisms. Knowledge of the basics of aspect-oriented programming. Knowledge of LDAP technology. Knowledge of web service.
Lectures
Multitier applications and application servers. Java Enterprise Edition technologies. Enterprise JavaBeans technologies. Object-relational mapping. Transactions in Enterprise environment. Asynchronous messaging. Advanced and server-side JavaScript concepts. Reflection, annotations, class loaders, Security managers and instrumentation. Aspect-oriented programming. Web services. LDAP servers. Spring Boot environment.
Practical classes
Angular environment for client applications. Enterprise Java Beans and Java Enterprise Edition application servers. Writing session EJB beans. Writing entities, relations, and working with the JPA query language. Connection REST and EJB concepts. Consolidation of web and server applications. Using JMS concepts for asynchronous messaging. Use of Spring Boot environment for writing server (backend) side application. Writing own annotations, use of reflection. Writing class loaders. Writing Security Manager classes. The use of instrumentation to change the program during execution (run time).