1. Andreas Martin - Page 1
Master of Science in Business Information Systems FHNW
Pre-Master Information Systems
2. Infrastructure
Andreas Martin
2. Infrastructure
http://www.flickr.com/photos/muhe-e/2895256535
2. Andreas Martin - Page 2
Infrastructure / Toolset
Development Environment: Eclipse IDE for Java EE Developers
& JBoss Tools
Application Server: JBoss 7 AS
Build-Management-Software: Maven
Database: MySQL
Modelling Tool: Visual Paradigm for UML
2. Infrastructure
3. Andreas Martin - Page 3
Eclipse IDE for Java EE Developers & JBoss Tools
2. Infrastructure
4. Andreas Martin - Page 4
Eclipse IDE for Java EE Developers & JBoss Tools
2. Infrastructure
6. Andreas Martin - Page 6
JBoss 7 AS – What is an Application Server?
2. Infrastructure
7. Andreas Martin - Page 7
HTTP (Web) Server vs. Servlet Container vs.
Application Server
A HTTP (Web) server is manly used to host websites.
Some HTTP (Web) servers can execute compiled modules
which extend the core functionalities:
e.g. server-side programming language modules (like PHP, Perl, Phyton
etc.)
One prominent example:
2. Infrastructure
Apache HTTP Server
8. Andreas Martin - Page 8
HTTP (Web) Server vs. Servlet Container vs.
Application Server
A servlet container executes Java Servlets.
Most servlet containers out there executes Java Server Pages
(JSP) too.
Pure servlet container:
2. Infrastructure
Apache Tomcat
Jetty – Eclipse Foundation
9. Andreas Martin - Page 9
Application Server
Usually an application server runs a generalized framework
(e.g. Java EE).
Popular Java EE Application Servers:
2. Infrastructure
WildFly (JBoss AS)
Apache TomEE
+
=
GlassFish
IBM WebSphere Oracle Weblogic
10. Andreas Martin - Page 10
HTTP (Web) Server vs. Servlet Container vs.
Application Server
2. Infrastructure
HTTP (Web) Server
Website hosting
Servlet Container
Website hosting
Java Servlets (& JSP)
Extended
Servlet Container
Website hosting
Java Servlets (& JSP)
Deployed Framework
(e.g. Spring, CXF, Java
EE)
Application Server
Website hosting
Java Servlets (& JSP)
Generalized
Framework
(e.g. Java EE)
Application level
services
(e.g. Connection
Pooling, Object
Pooling, Transaction
Support, Messaging
services)
12. Andreas Martin - Page 12
Maven
A software project management and comprehension tool.
2. Infrastructure
13. Andreas Martin - Page 13
Definition
Apache Maven is a software project management and comprehension tool.
Based on the concept of a project object model (POM)
Maven can manage a project's build, binaries, reporting and documentation from a
central piece of information.
Source and licensing: Arnaud Héritier 2010 – Apache Maven - http://www.slideshare.net/aheritier/20110303-e-xovnapachemaven
2. Infrastructure
14. Andreas Martin - Page 14
Conventions
1 project = 1 artefact (pom, jar, war, ear, …)
Standardized
project descriptor (POM)
build lifecycle
directories layout
*.java to compile in
src/[main|test]/java
*.xml, *.properties needed
in classpath and to bundle
in archive in src/[main|test]/resources
target directory for generated stuffs (sources, classes, …)
…
Source and licensing: Arnaud Héritier 2010 – Apache Maven - http://www.slideshare.net/aheritier/20110303-e-xovnapachemaven
2. Infrastructure
16. Andreas Martin - Page 16
Artefact Repository
By default :
A central repository
http://repo1.maven.org/m
aven2
Several dozen of Gb of OSS
libraries
A local repository
${user.home}/.m2/reposit
ory
All artefacts
Used by maven and its
plugins
Used by your projects
(dependencies)
Produced by your
projects
Source and licensing: Arnaud Héritier 2010 – Apache Maven - http://www.slideshare.net/aheritier/20110303-e-xovnapachemaven
2. Infrastructure
17. Andreas Martin - Page 17
Artefact Repository
By default Maven downloads
artefacts required by the
project or itself from central
Downloaded artefacts are
stored in the local repository
Used to store :
Project’s binaries
Project’s dependencies
Maven and plug-ins
binaries
Source and licensing: Arnaud Héritier 2010 – Apache Maven - http://www.slideshare.net/aheritier/20110303-e-xovnapachemaven
2. Infrastructure
18. Andreas Martin - Page 18
Dependencies
Without Maven With Maven
2. Infrastructure
Source and licensing: Arnaud Héritier 2010 – Apache Maven - http://www.slideshare.net/aheritier/20110303-e-xovnapachemaven
19. Andreas Martin - Page 19
Versions
Project and dependency versions
Two different version variants
SNAPSHOT version
The version number ends with –SNAPSHOT
The project is in development
Deliveries are changing over the time and are overridden after
each build
Artefacts are deployed with a timestamp on remote repositories
RELEASE version
The version number doesn’t end with –SNAPSHOT
Binaries won’t change
Source and licensing: Arnaud Héritier 2010 – Apache Maven - http://www.slideshare.net/aheritier/20110303-e-xovnapachemaven
2. Infrastructure