2014 pre-msc-is-2 infrastructure

20
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

Upload: andreasmartin

Post on 08-Jul-2015

66 views

Category:

Technology


1 download

DESCRIPTION

Programme: Master of Science in Business Information Systems FHNW Course: Pre-Master Information Systems Topic: Infrastructure

TRANSCRIPT

Page 1: 2014 Pre-MSc-IS-2 Infrastructure

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

Page 2: 2014 Pre-MSc-IS-2 Infrastructure

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

Page 3: 2014 Pre-MSc-IS-2 Infrastructure

Andreas Martin - Page 3

Eclipse IDE for Java EE Developers & JBoss Tools

2. Infrastructure

Page 4: 2014 Pre-MSc-IS-2 Infrastructure

Andreas Martin - Page 4

Eclipse IDE for Java EE Developers & JBoss Tools

2. Infrastructure

Page 5: 2014 Pre-MSc-IS-2 Infrastructure

DEMO

http://www.flickr.com/photos/jurvetson/489257240

Page 6: 2014 Pre-MSc-IS-2 Infrastructure

Andreas Martin - Page 6

JBoss 7 AS – What is an Application Server?

2. Infrastructure

Page 7: 2014 Pre-MSc-IS-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

Page 8: 2014 Pre-MSc-IS-2 Infrastructure

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

Page 9: 2014 Pre-MSc-IS-2 Infrastructure

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

Page 10: 2014 Pre-MSc-IS-2 Infrastructure

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)

Page 11: 2014 Pre-MSc-IS-2 Infrastructure

DEMO

http://www.flickr.com/photos/jurvetson/489257240

Page 12: 2014 Pre-MSc-IS-2 Infrastructure

Andreas Martin - Page 12

Maven A software project management and comprehension tool.

2. Infrastructure

Page 13: 2014 Pre-MSc-IS-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

Page 14: 2014 Pre-MSc-IS-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

Page 15: 2014 Pre-MSc-IS-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

Page 16: 2014 Pre-MSc-IS-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

Page 17: 2014 Pre-MSc-IS-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

Page 18: 2014 Pre-MSc-IS-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

Page 19: 2014 Pre-MSc-IS-2 Infrastructure

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

Page 20: 2014 Pre-MSc-IS-2 Infrastructure

DEMO

http://www.flickr.com/photos/jurvetson/489257240