12
Werkzeuge des Apache-Projekts 2004, F.J.Hauck/A.I.Schmied, Verteilte Systeme, Univ. Ulm [vorbesprechung.fm, 2004-07-23 09.55] Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung der Autoren. Seminar Werkzeuge des Apache-Projekts vom XML-Parser bis zum Web-Service Prof. Franz J. Hauck Andreas I. Schmied Abteilung Verteilte Systeme, Universität Ulm 1

Seminar Werkzeuge des Apache-Projekts · PDF fileCommons−Latka is an HTTP functional testing suite for automated QA, ... maven project management ... JMeter performance testing

  • Upload
    vungoc

  • View
    217

  • Download
    1

Embed Size (px)

Citation preview

Werkzeuge des Apache-Projekts 2004, F.J.Hauck/A.I.Schmied, Verteilte Systeme, Univ. Ulm [vorbesprechung.fm, 2004-07-23 09.55]Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung der Autoren.

SeminarWerkzeuge des Apache-Projekts

vom XML-Parser bis zum Web-Service

Prof. Franz J. HauckAndreas I. Schmied

Abteilung Verteilte Systeme, Universität Ulm

1

Werkzeuge des Apache-Projekts 2004, F.J.Hauck/A.I.Schmied, Verteilte Systeme, Univ. Ulm [vorbesprechung.fm, 2004-07-23 09.55]Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung der Autoren.

1 Ziele

■ Übung von Vorträgen

◆ Didaktik, Rhetorik, Präsentationstechnik

◆ Auswahl von Theorie, Praxis und Beispielen

◆ Einsatz von Beamer und Laptop

■ Übung von kurzen Zusammenfassungen

◆ sinnvolles Zusammenstellen eines komplexeren Sachverhalts

◆ korrekte Zitate und Referenzierung

■ Apache-Projekt

◆ Einblicke in ein qualitativ hochwertiges Open-Source-Projekt

◆ Evaluieren und Präsentieren großer Software-Frameworks

◆ Verständnis für Software-Muster für Frameworks

2

Werkzeuge des Apache-Projekts 2004, F.J.Hauck/A.I.Schmied, Verteilte Systeme, Univ. Ulm [vorbesprechung.fm, 2004-07-23 09.55]Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung der Autoren.

2 Ablauf des Seminars

■ Arbeiten der Teilnehmer

◆ 30- bis 45-minütiger Vortrag mit anschließender Diskussion

• möglichst nur ein Vortrag pro Seminartag

◆ 6- bis 10-seitige Ausarbeitung

• Folien und Ausarbeitung sollen auch elektronisch abgegeben werden

• Layoutrichtlinien der Ausarbeitung werden vorgegeben

• Textverarbeitungssystem frei wählbar

◆ Anwesenheit und aktive Mitarbeit bei Diskussionen

• zweimaliges entschuldigtes Fehlen wird toleriert

◆ termingerechte Betreuungsbesprechungen und Abgabe der Ausarbeitung

3

Werkzeuge des Apache-Projekts 2004, F.J.Hauck/A.I.Schmied, Verteilte Systeme, Univ. Ulm [vorbesprechung.fm, 2004-07-23 09.55]Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung der Autoren.

2 Ablauf des Seminars (2)

■ Betreuung

◆ jedes Thema hat einen Betreuer

■ Zeitplanung

◆ 21 Tage vorher: erste Besprechung des Themas

◆ 14 Tage vorher: Vorlage von Gliederung

◆ 7 Tage vorher: Vorlage erste Version Ausarbeitung und Folien

◆ am Vortragstag: Abgabe der Ausarbeitung

■ Belohnung

◆ alle Ausarbeitungen als gebundener Bericht zu Semesterende

• zum Selbstkostenpreis (ca. 3,50 Euro)

◆ Schein

• sorgfältige, termingerechte Arbeit

4

Werkzeuge des Apache-Projekts 2004, F.J.Hauck/A.I.Schmied, Verteilte Systeme, Univ. Ulm [vorbesprechung.fm, 2004-07-23 09.55]Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung der Autoren.

2 Ablauf des Seminars (3)

■ Termin

◆ genauer Termin steht noch nicht fest

◆ erster Termin wird festgelegt und rechtzeitig bekannt gegeben

• in erster Woche des Semesters per E-Mail/Webpage

◆ weitere Termine werden gemeinsam festgelegt

• geplant ab dritte Woche des Semesters

■ Erster Vortrag

◆ von den Betreuern

◆ wichtige Hinweise zu Präsentation und Ausarbeitung

◆ Tips für die eigenen Arbeiten

5

Werkzeuge des Apache-Projekts 2004, F.J.Hauck/A.I.Schmied, Verteilte Systeme, Univ. Ulm [vorbesprechung.fm, 2004-07-23 09.55]Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung der Autoren.

3 Themenfindung

■ max. 13 Themen

◆ Reihenfolge der bisherigen Anmeldungen ist zunächst entscheidend

◆ weitere Teilnehmer werden durch Los gereiht

■ Teilnehmerzettel

◆ bitte Name, Matrikelnummer und E-Mail-Adresse notieren

◆ später Themennummer notieren

■ Themenauswahl

◆ zunächst Präsentation aller Themen

◆ danach Wahl in Reihenfolge der Losnummer

6

Werkzeuge des Apache-Projekts 2004, F.J.Hauck/A.I.Schmied, Verteilte Systeme, Univ. Ulm [vorbesprechung.fm, 2004-07-23 09.55]Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung der Autoren.

3.1 Themengebiet

■ Apache-Projekt

◆ großes Open-Source-Projekt

◆ erfolgreich, industrietauglich !

◆ mehrere Subprojekte aus diversen Bereichen

• Webserver, Portale

• Webservices

• XML-Processing

• (XML-) Publishing

• Allgemeine Programmbibliotheken „Commons“

• Entwicklungstools

• (Projekt-) Administration

• (Script-) Sprachen

■ Andy's Apache Mindmap (nächste Seite…)

7

Werkzeuge des Apache-Projekts 2004, F.J.Hauck/A.I.Schmied, Verteilte Systeme, Univ. Ulm [vorbesprechung.fm, 2004-07-23 09.55]Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung der Autoren.

3.1 Themengebiet (2)

Workflow provides a framework for building workflow management sy... Workflow

VFS is a Virtual File System component for treating files, FTP, SMB, ZIP and such like as a single logical file system. VFS

ThreadPool is a simple component for asynchronously dispatching work to another thread in a pool for simple multi threaded programming. ThreadPool

Commons SQL is a component for working with databases and generating DDL. It contains a simple set of beans that represent a relational database schema such as a Database, Table, Column etc. SQL

Scaffold is a toolkit for building web applicati... Scaffold

Resources provides a lightweight framework for defining and looking up internationalized message strings keyed by a java.util.Locale and a message key. Resources

Messenger is an easy to use and lightweight framework for working with JMS in the w. Messenger

Mapper is a thin abstraction layer around a project’s chosen data mapping technology (a.k.a. DAO .. Mapper

JRCS is a library for parsing and manipulation of RCS archive files like the ones produced by the RCS (Revision Control System) itself and by CVS (Concurrent Version System). JRCS

Jakarta JAR Archive Reposito.. JJar

Id is a component used to generate identifi... Id

A functor is a function that can be manipulated as an object, or an object representing a single, generic function. Functor

Commons−Events provides additional classes for firing and handling events. It focusses on the Java Collections Framework, providing decorators to other collections that fire events. Events

Email provides a simple library for sending e−mail from J.. Email

Commons−Convert aims to provide a single library dedicated to the task of converting an object of one type to another. Convert

Commons Compress defines an API for working with tar, zip and bzip... Compress

Clazz focuses on introspection and class manipula... Clazz

Chain is an implmentation of the GoF Chain of Responsibility pa.. Chain

Cache provides object caching servic... Cache

Attributes provides a runtime API to metadata attributes such as doclet tags, inspired by the Nanning and XRAI projects as well as JSR 175 and C# attrbutes. Attributes

Sandbox

The commons−validator package provides a simple, extendable framework to define validators (validation methods) and validation rules in an xml file. There is support for internationalization of validation rules and error messages.

Validator

Commons−Primitives provides smaller, faster and easier to work with types supporting Java primitive types. Currently Primitives is primarily focused on collections of primitives. Primitives

Commons−Pool provides a generic object pooling interface, a toolkit for creating modular object pools and several general purpose pool implementations. Pool

Net is a a collection of network utilities, based on the NetComponents codebase, including FTP cli... Net

Commons−Modeler provides mechanisms to create Model MBeans compatible with the Java Management Extensions (JMX) specification. Modeler

Math is a library of lightweight, self−contained mathematics and statistics components addressing the most common practical problems not immediately available in the Java programming language. Math

Commons−Logging is a wrapper around a variety of logging API implement.. Logging

The Launcher Component is designed to be a cross platform Java application launcher. Commons−launcher eliminates the need for a batch or shell script to launch a Java class. The original Java classes come from the Jakarta Tomcat 4.0 project.

Launcher

Commons−Latka is an HTTP functional testing suite for automated QA, acceptance and regression .. Latka

Commons−Lang provides a very common set of utility classes that provide extra functionality for classes in java.lang. Lang

Commons−JXPath provides utilities for manipulating Java classes that conform to the JavaBeans naming conventions using the XPath syntax. It also supports maps, DOM and other object models. JXPath

Jexl is an expression language which entends the Expression Language of the JSTL by bringing in some of the lessons leaned by the Velocity community. Jexl

Jelly is an XML based scripting and processing engine. Jelly borrows many good ideas from both JSP custom tags, Velocity, Cocoon and the scripting engine inside XDoclet. Jelly can be used from the command line, inside Ant or inside a Servlet.

Jelly

IO is a collection of I/O utiliti... IO

Commons−HttpClient provides a framework for working with the client−side of the HTTP p.. HttpClient

FileUpload makes it easy to add robust, high−performance, file upload capability to your servlets and web applications. FileUpload

Commons−EL provides an interpreter for the Expression Language which is defined by the JavaServer Pages(TM) specification, version 2.0. EL

Commons−Discovery provides tools for locating resources (including classes) by mapping service/reference names to resource names using a variety of schemes. Discovery

Commons−Digester is an XML−to−Java−object mapping utility commonly used for parsing XML configuration files. Digester

DbUtils is a JDBC helper library that factors out mundane resource cleanup code for common database tasks. DbUtils

Commons−DBCP provides database connection pooling ser... DBCP

An alternative invocation mechanism for unix−daemon−like java ... Daemon

Commons−Configuration Tools to assist in the reading of configuration/preferences files in various formats. Configuration

Commons−Collections provides a suite of classes that extend or augment the Java Collections Fra... Collections

Codec contains some general encoding/decoding algorithms. Includes some phonetic encoders, Hex, Base64, and a URL encoder. Codec

CLI provides a simple API for working with Comamnd Line arguments, options, option groups, mandatory options and so forth. CLI

Betwixt provides services for mapping JavaBeans to XML documents, and vice ... Betwixt

Commons−BeanUtils provides easy−to−use wrappers around the Java reflection and introspecti... BeanUtils

Components

Commons

xdoclet

wichtige externe Projek... =NON−APACHE

xml java bindi... xml beans

OASIS Web Service Remote Portlet implementati. WSRP4J

portlet spec JSR 1... pluto

Spam Assassin

software package manageme... Depot

logging for .N... Log4Net

cocoon CMS lenya

JCE provider with OpenS.. JuiCE

J2EE Container Geronimo

FtpServer

LDAP & Co. Directory

relational DB Axion

AltRMI

gerade entstehende proje... =

incubator

xml beans

xml application serveraxkit

xml databasexindice

signing and encrypti...xml security

xml entity and URI resolver by norman w...xml commons

svgbatik

based on coco...

project documentation framew...forrest

fop

java, c++xalan

java, c++, perlxerces

xml

WSRP4J

XML−RPC

distributed discovery

WS inspection langua...WSIL

location and access method independ...

WS invocation framewo...WSIF

supersedes IBM SOAP...SOAP

"Judy"jUDDI

JAXB implementationJaxMe

securityWSS4J

reliable messaging on a...Sandesha

Addressing

ws−fx

new Apache SOAP implementati..axis

web services

websh

rivet

mod_tcl

tcl

connectors to several persistence, component, content generating techn...

MVC/Model2 framewo...struts

pluto

WSRP4J

portal implementati...jetspeed

portals

mod_perlperl

project managementmaven

GUIchainsaw

interoperability with java loggi..

log4j, ...multi−language supp...

logging

mail server for pop3,smtp,n...james

Apache News

Apache Wiki

JPackage

UNOFFICIAL

Servlet/JSP spec conformance chec...Watchdog

Veltag: Velocity TagLib

DVSL: declarative velocity style language, XSLT ali..

Texen: text generat...

Anakia: XML −> any doc form...

Velocity Tools: cooperation with str...

general code generation: SQL, XML,..

content−code−separation for java−weba...

java−based template engi...

Velocity

for tomcat, velocity, ...

easily creates secure scheduled services with servle..Turbine

servlet/JSP containerTomcat

is an alternative to scripting environments such as JavaServer Pages or Vel...

reconceptualizes web application development in terms of objects, methods and properties instead of URLs and query parameters

Java framework for creating leading edge web applicat.

Tapestry

JSP tag libraries’ libraryTaglibs

WebDAV support

lowlevel CMSSlide

Regexp

reads/writes MS−Office formats

Java−based MS−OLE2 interoperabil..POI

text manipulation like perl/awk, globs, filterin...ORO

text searchLucene

performance testingJMeter

intra−process MT−safe service management/configura...HiveMind

use Java objects instead of println("<html/xm...

element construction setECS

commons

extends JUnit for server−side Servlet/EJB/... testi...Cactus

bean scripting framewo...BSF

byte code engineering libr...BCEL

replaced by: gump, forrest, mav...

former CVS/Javadoc/Source code/Documentation management sy...Alexandria

jakarta

build−tool for inter−project dependen...

social experiment, XP, continuous integra...gump

db commons

ORMObjectBridge AKA ObJectRelationBridge (...

formerly part of turbine

persistence layer + generat...torque

db

serf

not jakarta commons!

commons

XML publishi...cocoon

main component gro...planet

platform for management of compone...merlin

see: logginglogkit

joint with directory proj...repository

utilities

meta

component meta mo...

framework

avalon

portable runtimeapr

Apache Project OverviewSeminar WS04

8

Werkzeuge des Apache-Projekts 2004, F.J.Hauck/A.I.Schmied, Verteilte Systeme, Univ. Ulm [vorbesprechung.fm, 2004-07-23 09.55]Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung der Autoren.

3.2 Themen (1)

1. XML-Parsing und -Processing

• Xerces, Xalan, Xalan-Erweiterungen

2. XML-Commons und XML-Security

• Schema-Katalog, URIResolver, …

3. XML-Document-Rendering

• SVG, FOP, Batik

4. XML-Publishing

• Cocoon, Lenya, Forrest

9

Werkzeuge des Apache-Projekts 2004, F.J.Hauck/A.I.Schmied, Verteilte Systeme, Univ. Ulm [vorbesprechung.fm, 2004-07-23 09.55]Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung der Autoren.

3.2 Themen (2)

5. Apache-Webserver

• der klassische „httpd“

6. Portale

• Jetspeed, Pluto, Portlets

7. Struts

• MVC/Model2-Framework für Web-Applikationen

8. Avalon

• Komponenten/Container-Framework für beliebigeund Web-Applikationen

10

Werkzeuge des Apache-Projekts 2004, F.J.Hauck/A.I.Schmied, Verteilte Systeme, Univ. Ulm [vorbesprechung.fm, 2004-07-23 09.55]Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung der Autoren.

3.2 Themen (3)

9. Projekt-Management

• Maven, James

10. Jakarta: Tomcat, Turbine

• Servlet/JSP-Container

11. Jakarta: Velocity, Tapestry

• Template Engine, Web Application Dev.Kit.

12. Jakarta-Commons

• breit angelegte Bibliothek

13. Datenbank und Application Server

• Xindice, Axkit, Axis, Geronimo

11

Werkzeuge des Apache-Projekts 2004, F.J.Hauck/A.I.Schmied, Verteilte Systeme, Univ. Ulm [vorbesprechung.fm, 2004-07-23 09.55]Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung der Autoren.

3.3 Themenvergabe

A XML-Parsing/Processing

B XML-Commons/Security

C XML-Rendering

D XML-Publishing

E Webserver

F Portale

G Struts-Framework

H Avalon-Framework

J Projekt-Management

K Tomcat/Turbine

L Velocity/Tapestry

M Jakarta-Commons

N DB/App-Server

12