61
1

Architecting Large Enterprise Java Projects

Embed Size (px)

Citation preview

Page 1: Architecting Large Enterprise Java Projects

1

Page 2: Architecting Large Enterprise Java Projects
Page 3: Architecting Large Enterprise Java Projects

Application Server

EAR EAR EAR

WAR

JAR JAR JAR JAR

JAR JAR WAR

JAR JAR

EAM <?>

LoadBalancer

Page 4: Architecting Large Enterprise Java Projects

Page 5: Architecting Large Enterprise Java Projects

5

Page 6: Architecting Large Enterprise Java Projects

6

Page 7: Architecting Large Enterprise Java Projects

7

Page 8: Architecting Large Enterprise Java Projects

8

Page 9: Architecting Large Enterprise Java Projects

9

Page 10: Architecting Large Enterprise Java Projects

10

Page 11: Architecting Large Enterprise Java Projects

11

Page 12: Architecting Large Enterprise Java Projects

12

Page 13: Architecting Large Enterprise Java Projects

13

Page 14: Architecting Large Enterprise Java Projects

14

Page 15: Architecting Large Enterprise Java Projects

15

Page 16: Architecting Large Enterprise Java Projects

16

Page 17: Architecting Large Enterprise Java Projects

17

http://martinfowler.com/articles/microservices.html

Page 18: Architecting Large Enterprise Java Projects

18

Page 19: Architecting Large Enterprise Java Projects

19

http://martinfowler.com/articles/microservices.html

Page 20: Architecting Large Enterprise Java Projects

20

Page 21: Architecting Large Enterprise Java Projects

21

http://akfpartners.com/techblog/2008/05/08/splitting-applications-or-services-for-scale/

Page 22: Architecting Large Enterprise Java Projects

22

Page 23: Architecting Large Enterprise Java Projects

23

AppServiceSDApp

ServiceSD

Page 24: Architecting Large Enterprise Java Projects

24

AppServiceSDApp

ServiceSD

AppServiceSD

AppServiceSD

Page 25: Architecting Large Enterprise Java Projects

25

JAX-RS

JSON-PWeb SocketServlet

JSFELJSP JSTL

Bean V

alid

ation

Inte

rcepto

rs

CD

I

Concurr

ency

JPA

JTA EJB JMS

Batch

JCA

Java EE

JavaMail

Page 26: Architecting Large Enterprise Java Projects

26

@Stateless@Path("/")public class CustomerOrderHistory{

@GET@Path(“order")@Produces("text/plain")String getOrderHistory();

// …}

Page 27: Architecting Large Enterprise Java Projects

27

ServiceAA

JAX-RS

EJB / CDI

JPA

JCache

Page 28: Architecting Large Enterprise Java Projects

28

Page 29: Architecting Large Enterprise Java Projects

29

Page 30: Architecting Large Enterprise Java Projects

30

Page 31: Architecting Large Enterprise Java Projects

31

Compute, Storage, Network

Host OS

Hypervisor

VM1

JVM

AppServ

serviceaa.war

Page 32: Architecting Large Enterprise Java Projects

32

Page 33: Architecting Large Enterprise Java Projects

33

Docker

Conta

iner 1

Conta

iner 2

Conta

iner 4

Conta

iner 3

Se

rvic

eA

A

Se

rvic

eB

A

Se

rvic

eC

T

Se

rvic

eX

Z

Compute, Storage, Network

Host OS

http://www.jboss.org/docker/

Page 34: Architecting Large Enterprise Java Projects

34

Page 35: Architecting Large Enterprise Java Projects

35

Page 36: Architecting Large Enterprise Java Projects

36

Page 37: Architecting Large Enterprise Java Projects

37

Page 38: Architecting Large Enterprise Java Projects

38

Container

ContainerContainerContainer

Page 39: Architecting Large Enterprise Java Projects

39

Page 40: Architecting Large Enterprise Java Projects

40

Page 41: Architecting Large Enterprise Java Projects

41

Page 42: Architecting Large Enterprise Java Projects

42

Page 43: Architecting Large Enterprise Java Projects

43

Page 44: Architecting Large Enterprise Java Projects

44

Page 45: Architecting Large Enterprise Java Projects

45

Page 46: Architecting Large Enterprise Java Projects

46

Page 47: Architecting Large Enterprise Java Projects

47

Page 48: Architecting Large Enterprise Java Projects

48

Page 49: Architecting Large Enterprise Java Projects

49

Page 50: Architecting Large Enterprise Java Projects

50

Page 51: Architecting Large Enterprise Java Projects

51

Page 52: Architecting Large Enterprise Java Projects

52

Page 53: Architecting Large Enterprise Java Projects

53

Page 54: Architecting Large Enterprise Java Projects

54

Page 55: Architecting Large Enterprise Java Projects

55

Page 56: Architecting Large Enterprise Java Projects

56

Page 57: Architecting Large Enterprise Java Projects

57

Page 58: Architecting Large Enterprise Java Projects

58

Page 59: Architecting Large Enterprise Java Projects

59

Page 60: Architecting Large Enterprise Java Projects

60

Page 61: Architecting Large Enterprise Java Projects

61

http://www.lordofthejars.com/2014/07/rxjava-java8-java-ee-7-arquillian-bliss.html

http://www.lordofthejars.com/2014/09/defend-your-application-with-hystrix.html

http://techblog.netflix.com/2012/02/fault-tolerance-in-high-volume.html

http://martinfowler.com/articles/microservices.html

http://microservices.io/patterns/microservices.html

http://techblog.netflix.com/2013/01/optimizing-netflix-api.html

http://www.infoq.com/articles/microservices-intro