1
Application Server
EAR EAR EAR
WAR
JAR JAR JAR JAR
JAR JAR WAR
JAR JAR
EAM <?>
LoadBalancer
•
•
•
•
•
•
•
•
5
•
•
•
•
•
•
•
6
•
•
•
7
8
9
10
11
12
•
•
•
•
•
•
•
•
•
•
13
14
15
16
17
http://martinfowler.com/articles/microservices.html
18
19
http://martinfowler.com/articles/microservices.html
20
21
http://akfpartners.com/techblog/2008/05/08/splitting-applications-or-services-for-scale/
22
23
App
ServiceSDApp
ServiceSD
24
App
ServiceSDApp
ServiceSD
App
ServiceSD
App
ServiceSD
25
JAX-RS
JSON-P
Web SocketServlet
JSFEL
JSP
JSTL
BeanValidation
Interceptors
CDI
Concurrency
JPA
JTA EJB JMS
Batch
JCA
Java EE
JavaMail
26
@Stateless
@Path("/")
public class CustomerOrderHistory
{
@GET
@Path(“order")
@Produces("text/plain")
String getOrderHistory();
// …
}
27
ServiceAA
JAX-RS
EJB / CDI
JPA
JCache
28
29
30
31
Compute, Storage, Network
Host OS
Hypervisor
VM1
JVM
AppServ
serviceaa.war
32
33
Docker
Container1
Container2
Container4
Container3
ServiceAA
ServiceBA
ServiceCT
ServiceXZ
Compute, Storage, Network
Host OS
http://www.jboss.org/docker/
34
35
36
37
38
Container
ContainerContainerContainer
39
40
41
42
43
44
45
46
47
48
49
50
51









52
53
54
55
56
57
58
59
60
62
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

Architecting Large Enterprise Projects @DevConf.CZ