2014 pre-msc-is-2 infrastructure
DESCRIPTION
Programme: Master of Science in Business Information Systems FHNW Course: Pre-Master Information Systems Topic: InfrastructureTRANSCRIPT
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
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
Andreas Martin - Page 3
Eclipse IDE for Java EE Developers & JBoss Tools
2. Infrastructure
Andreas Martin - Page 4
Eclipse IDE for Java EE Developers & JBoss Tools
2. Infrastructure
DEMO
http://www.flickr.com/photos/jurvetson/489257240
Andreas Martin - Page 6
JBoss 7 AS – What is an Application Server?
2. Infrastructure
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
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
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
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)
DEMO
http://www.flickr.com/photos/jurvetson/489257240
Andreas Martin - Page 12
Maven A software project management and comprehension tool.
2. Infrastructure
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
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
Andreas Martin - Page 15
POM
An XML file (pom.xml)
Describing
Project identification
Project version
Project description
Build settings
Dependencies
…
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>net.aheritier.samples</groupId>
<artifactId>simple-webapp</artifactId>
<version>1.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>Simple webapp</name>
<inceptionYear>2007</inceptionYear>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-struts</artifactId>
<version>2.0.2</version>
</dependency>
...
</dependencies>
</project>
Source and licensing: Arnaud Héritier 2010 – Apache Maven - http://www.slideshare.net/aheritier/20110303-e-xovnapachemaven
2. Infrastructure
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
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
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
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
DEMO
http://www.flickr.com/photos/jurvetson/489257240