29
Enterprise Architectures Petr Kˇ remen [email protected] Winter Term 2017 Petr Kˇ remen ([email protected]) Enterprise Architectures Winter Term 2017 1 / 29

Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

  • Upload
    others

  • View
    39

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Architectures

Petr Kremen

[email protected]

Winter Term 2017

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 1 / 29

Page 2: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Contents

1 Information about the course

2 Enterprise Applications

3 Java EE

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 2 / 29

Page 3: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Information about the course

Information about the course

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 3 / 29

Page 4: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Information about the course

You will learn how to

design enterprise applicationsusing Java webtechnologies, includingpieces of the Java EEstack

implement the applications inJava, Spring,EclipseLink, andReactJS

think about high-availability,clustering, security, andother stuff ...

source: https://techcodegeek.wordpress.com

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 4 / 29

Page 5: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Information about the course

Teachers

Lecturers:

Petr Kremen, [email protected]

Miroslav Blasko, [email protected]

Martin Ledvinka, [email protected]

Course Assistants:

Petr Kremen, [email protected]

Miroslav Blasko, [email protected]

Martin Ledvinka, [email protected]

Bogdan Kostov, [email protected]

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 5 / 29

Page 6: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Information about the course

Course Organization

Go throughhttps://cw.fel.cvut.cz/wiki/courses/b6b33earcarefully, including subsections:

Lectures

https://cw.fel.cvut.cz/wiki/courses/b6b33ear/lectures

Seminarshttps://cw.fel.cvut.cz/wiki/courses/b6b33ear/seminars

Assessmenthttps://cw.fel.cvut.cz/wiki/courses/b6b33ear/hodnoceni

The course will be split into two parts:

Basic topics – lectures 1-7Advanced topics – lectures 8-13

14th week – Panel Discussion with people from commercial sector

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 6 / 29

Page 7: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Enterprise Applications

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 7 / 29

Page 8: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Usage of programming languages in 2016

source: http://www.codeeval.com

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 8 / 29

Page 9: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Java

simple, designed for small devices

portability (bytecode)

runtime optimization (compilation)

public specifications JSR based on community discussion

editions

Java MEJava SE – Java 1.x, J2SE 1.2 & 1.3 & 1.4, Java SE 5 & 6 & 7 & 8Java EE – J2EE 1.2 & 1.3 & 1.4, Java EE 5 & 6 & 7(Android)

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 9 / 29

Page 10: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Client - Server Paradigm

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 10 / 29

Page 11: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Desktop Application

Desktop Application. Single-user access.

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 11 / 29

Page 12: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Web Application

Web Application. Multi-user access, single client (web), no integration with other systems.

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 12 / 29

Page 13: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Enterprise Application (EA)

Web Application. Multi-user access, multiple clients (web, mobile, desktop, terminal ...),

integration with other enterprise systems (ERP, DWH, ...).

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 13 / 29

Page 14: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Multi-tier Architecture

Typically three-tier – presentation logic, business logic, data storage.Separation of tiers to

1 presentation

2 service

3 business logic

4 data access

5 data storage

6 ...

Each tier can access only a tier right below (strict), or all lower tiers(relaxed).

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 14 / 29

Page 15: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Multi-tier Architecture

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 15 / 29

Page 16: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Enterprise Application Architecture

Martin Fowler: Patterns of Enterprise Application Architecture

“... display, manipulation and storage of large amounts ofcomplex data and the support or automation of business

processes with that data.”

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 16 / 29

Page 17: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Enterprise Applications - Requirements

Persistent Data using relational databases, graph databases, NoSQLdatabases, RDF triple stores,

Complex Data Integration of different volume, accurracy, updatefrequency, quality and meaning → data integration,

Concurrent Data Access by many users at once with different scenarios(writing, reading different parts of data),

Multiple Input Interfaces involving complex user interfaces (many forms,web pages), (sensoric) data sources, operational data,

Process Automation involving integration with other enterpriseapplications, batch processing, etc.

Performance, Robustness involving (horizontal/vertical) scalability, loadbalancing, high-availability

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 17 / 29

Page 18: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Data Integration

Vocabulary/Ontology Management – Enterprise Conceptual Models,

SKOSRDF(S),OWL

Master Data1 – data spanning the whole enterprise, like customers,products, accounts, contracts and locations

1source: http://www.ibm.com/developerworks/data/library/techarticle/dm-0804oberhofer

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 18 / 29

Page 19: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Integration with other EA

Messaging systems for asynchronous messaging

JMS (JSR 343)

Remote Procedure Calls for synchronous calls

RPCRMICORBAWeb Services

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 19 / 29

Page 20: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Vocabulary/Ontology Management – Is It Worth ?

9/11 – One or Two Events ?

... matter of billions of USD

source:https://www.metabunk.org/larry-silversteins-9-11-insurance.t2375

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 20 / 29

Page 21: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Performance Testing2

Metrics

response time – server-side request processing time,

latency – client-side request processing time for NOP operation (i.e.for zero response time),

throughput – transactions per seconds,

scalability – sensitivity to resource (hardware) addition/removal,

scaling up (vertical) – add resource (RAM) to one serverscaling out (horizontal) – add more servers

Contextual Information

load – number of requests/transactions

load sensitivity – sensitivity of a metric w.r.t load

2https://nirajrules.wordpress.com/2009/09/17/measuring-performance-response-vs-latency-

vs-throughput-vs-load-vs-scalability-vs-stress-vs-robustnessPetr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 21 / 29

Page 22: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Use Case – External B2C Systeme.g. e-shop, social network

Many Concurrent Users

Web Client

Relational Database with a simple model

Enterprise Data Store Integration

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 22 / 29

Page 23: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Enterprise Applications

Use Case – Internal Enterprise Systeme.g. Car Insurance System

(Not so many) Concurrent Users – mainly company employees

Thick client for company employees

Relational Database, complex domain model capturing enterpriseknow-how

e.g. conditions for obtaining an insurance contract

ERP, CRM Integration

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 23 / 29

Page 24: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Java EE

Java EE

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 24 / 29

Page 25: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Java EE

Java EE = Java Enterprise Edition

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 25 / 29

Page 26: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Java EE

Java EE Principles

single specification, more implementations

bunch of technologies integrated in Java EE Application Server

Application servers – Glassfish, WebLogic (Oracle), WebSphere (IBM),WildFly (RedHat), Payara (Glassfish fork), . . .

Web Containers – Tomcat (Apache), Jetty (Eclipse Foundation), . . .

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 26 / 29

Page 27: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Java EE

Technologies Used in This Course

JPA (EclipseLink) (∈ Java EE stack)

Websockets (∈ Java EE stack)

Servlets (∈ Java EE stack)

Spring (provides similar functionality as Enterprise Java Beans, CDI,Common Annotations and other)

→ Apache Tomcat

ReactJS (modern JS-based UI system, more flexible alternative toJSF)

→ NodeJS (only for efficient compilation)

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 27 / 29

Page 28: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Java EE

Alternatives

Spring vs. Java EE Session Beans

Spring Web Services vs. JAX-RS

EclipseLink vs. Hibernate, OpenJPA

ReactJS vs. JSF

ReactJS vs. AngularJS, ExtJS

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 28 / 29

Page 29: Enterprise Architectures - cvut.czJPA (EclipseLink)(2 Java EE stack) Websockets(2 Java EE stack) Servlets(2 Java EE stack) Spring(provides similar functionality as Enterprise Java

Java EE

Resources

https://cw.fel.cvut.cz/wiki/courses/ear/materials

Petr Kremen ([email protected]) Enterprise Architectures Winter Term 2017 29 / 29