34
1 JBoss Technology Map W3L AG [email protected] 2009

JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

1

JBoss Technology Map

W3L [email protected]

2009

Page 2: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

2

Inhalt

HistorieGeschäftsmodell der JBoss Inc.JBoss Enterprise Middleware Suite (JEMS)

Web InterfaceProgrammiermodelDiensteServerinfrastrukturManagementWerkzeugeSonstige

Zusammenfassung

zurück

Page 3: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

3

Historie

EJB-Spezifikation wird 1997 durch IBM veröffentlicht.Sun Microsystems treibt die Entwicklung der Spezifikation schließlich weiter

EJB 1.1 im Jahr 1999EJB 2.0 im Jahr 2001 (Standardisierungsprozess JCR / JSR 19)EJB 2.1 im Jahr 2003 (Standardisierungsprozess JCR / JSR 153)EJB 3.0 im Jahr 2006 (Standardisierungsprozess JCR / JSR 220)

Marc Fleury implementiert 1999 den EJB-Standard als Open-SourceName des Applikations-Servers: EJBossWegen Markenschutzverletzung später in JBoss umbenannt

Biographie Marc FleuryGeboren 1968 in ParisDoktor in Physik an der École PolytechniqueSun Microsystems Mitarbeiter in FrankreichIn die USA ausgewandert

Page 4: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

4

Historie

2001 gründet Marc Fleury die JBoss Group LLC (limited liabilitycompany)2004 wird daraus die Aktiengesellschaft JBoss Inc.2006 wird JBoss durch Red Hat für 420 Millionen Dollar übernommen

Zuvor hatte Oracle ein Angebot für 400 Millionen Dollar unterbreitet

Page 5: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

5

Geschäftsmodell JBoss Inc.

Open-Source-Entwicklungen nach LGPL werden durch kommerzielle Dienstleistungen gegenfinanziert

SupportConsultingSchulungen und Zertifizierungen

Professional Open SourceRed Hat-Angestellte und Community-Entwickler

Der JBoss Applikations-Server ist nur noch ein Baustein der JBoss Enterprise Middleware Suite (JEMS)

IdeeProdukt- und Dienstleistungsangebot potenzieren durch Aufspaltung des JBoss AS in TeilkomponentenDas JEMS ist ein vollständiges Open-Source-J2EE-Middleware-Framework

Quelle: http://www.jboss.org

Page 6: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

6

Geschäftsmodell JBoss Inc.

Teilkomponenten des JBoss ASClustering und Distributed DeploymentLoad BalancingDistributed CachingAOPJSP und JSFEJBJNDI (Java Naming and Directory Interface)HibernateJTA (Java Transaction API)JAX-WSJavaMailRMI-IIOPJCA (Java Connector Architecture)JAAS (Java Authentication and Authorization Service)JACC (Java Authorization Contract for Containers)

Page 7: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

7

JBoss Enterprise Middleware Suite

Quelle: http://www.jboss.org

Page 8: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

8

JBoss Enterprise Middleware Suite - Überblick

JEMS – Web InterfaceWebbasierte Frontend-Entwicklung

JEMS – ProgrammiermodellBasiskonzepte für die Software-Entwicklung

JEMS – DiensteInfrastruktur-Komponenten

JEMS – ServerinfrastrukturServerseitige Plattform

JEMS – ManagementÜberwachung und Verwaltung

JEMS – WerkzeugeIDE-Unterstützung für die Software-Entwicklung und das Testen

JEMS – SonstigeNicht zugeordnete bzw. elternlose JEMS-Projekte

Page 9: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

9

JBoss Enterprise Middleware Suite - ÜberblickWeb Interface•Portal

•Portlet Bridge•Portlet Container

•RichFaces•Gravel•GateIn

Programmiermodell•Seam•RESTEasy•Railo•AOP•EJB3•ESB•Weld•TorqueBox

Werkzeuge•Teiid Designer•JSFUnit•JRunit•Tools•Mass•Profiler•Distributed Test Framework•Tattletale•Savara•Byteman

Management•Jopr•Embedded Jopr•DNA•Overlord•Guvnor•JMX

Sonstige•mod_cluster•XNIO•Netty•Javassist (Werkzeuge)•Wise•APIviz•Kosmos (Management)•Common•Retro

Dienste•Hibernate•jBPM•Drools•JGroups•IIOP•jDCOM•Backtie•Transactions•Messaging•Web Services•Remoting•Cache•Infinispan•Clustering•Security•Identity•Federated SSO•Marshalling•Serialization•HornetQ•RiftSaw•JCA

Serverinfrastruktur•Mobicents

•JAIN SLEE•Sip Servlets•Media•SIP Presence•Diameter

•Teiid•Microcontainer•Web•Application Server

Page 10: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

10

JEMS – Web Interface

Portal – Portlet ContainerNach der Portlet 2.0-Spezifikation (JSR-286) standardkonformer Portlet-Container.LGPL (GNU Lesser General Public License)Basis des JBoss Portal (GateIn) bzw. der JBoss Portal Plattform

Definition PortletsKombinierbare Komponenten einer Web-Oberfläche, welche von einem Portlet Container verwaltet und angezeigt werden.

Beispiel

Page 11: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

11

JEMS – Web Interface

Portal – Portlet BridgePortlet-Entwicklung nach JSR-286 beginnt auf der „grünen Wiese“Die Portlet Bridge schafft eine verbesserte Infrastruktur.

JBoss RichFaces (Web Interface) und JBoss Seam (Programming Model)

Entwickler können mit bekannten Techniken arbeitenPortlet-Konzepte oder Kenntnis des Portlet API‘s nicht zwingend

Standardisierungsbestrebungen nach JSR-301 und JSR-329Aktuell jedoch non-final draft

Page 12: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

12

JEMS – Web Interface

JBoss GateInHerausgegangen aus einer strategischen Partnerschaft zwischen JBoss Inc. und eXoFasst die beiden Projekte JBoss Portal und eXo Plattform zusammen

Weiterentwicklung am JBoss Portal wird damit eingestellt!Definition Portal

Web-Anwendung mit einer personalisierbaren Oberfläche.Verantwortlich für die Aggregation von (Unternehmens-)Inhalten und Anwendungen

Page 13: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

13

JEMS – Web Interface

JBoss RichFacesAJAX Komponentenbibliothek für JSF, mit der sich Rich Client-basierte Web-Anwendungen realisieren lassen.

<aj4:… und <rich:…Basiert ursprünglich auf dem Open Source Framework Ajax4JSF von Exadel Inc.Exadel und JBoss sind eine strategische Partnerschaft eingegangenAktuelles Release 3.3.2RichFaces 4.0 soll JSF 2 unterstützen

JBoss GravelKomponentenbibliothek für JSF

Page 14: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

14

JEMS – Programmiermodell

JBoss SeamKombiniert JSF, RichFaces, JPA, EJB 3.0 und jBPMFull-Stack FrameworkZiel

Komplexitätsreduktion bei der Benutzung o.g. TechnikenInsbesondere Zusammenspiel zwischen Business-Logik und der PräsentationSchnellere Entwicklung unter J2EE

Annotationen vs. Konfigurations-XMLHilfsprogramm seam-gen generiert CRUD-Applikationen aus einer bestehenden Datenbank

Page 15: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

15

JEMS – Programmiermodell

JBoss RESTEasyvgl. Vortrag »REST: Eine leichtgewichtige und einfachere Alternative zu Web Services«, 40. Freundeskreis Veranstaltung, Frühjahr 2009Vollständige Implementierung der JAX-RS Spezifikation (JSR-311)Weitere Features

JAXB (Java Architecture for XML Binding)GZIP-KomprimierungClient-Framework

Page 16: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

16

JEMS – Programmiermodell

JBoss RailoEngine für CFML (Cold Fusion Markup Language) von AdobeÜbersetzt CFML zu Java-Klassen und führt diese als Servlet aus

JBoss AOPFramework, um querschneidende Belange lokalisieren zu können.

JBoss EJB 3.0Implementierung der EJB 3 Spezifikation

Reduktion der KomplexitätKonzentration auf die Entwicklung von POJO‘s mit Annotationen

Page 17: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

17

JEMS – Programmiermodell

JBoss ESBEAI-Lösung

Business Process MonitoringBusiness Process ManagementHuman Workflow UITransaction ManagerJNDIDistributed Computing Architecture

Page 18: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

18

JEMS – Programmiermodell

JBoss TorqueBoxRuby Application Platform auf Basis des JBoss ASRoR-Prinzipien

Don‘t Repeat YourselfConvention over ConfigurationAgile Softwareentwicklung

Quelle: http://torquebox.org/

Page 19: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

19

JEMS – Dienste

JBoss – jBPM (Business Process Management)Leichtgewichtiges Framework (kann ohne AS verwendet werden) zur Implementierung und Orchestrierung von GeschäftsprozessenUnterstützt verschiedene Prozess-Definitions-Sprachen

jPDL (Process Definition Language) für GP-DefinitionBPEL (Business Process Execution Language) für GP-Orchestrierung

PVMZentrale Ausführungseinheit. Einzige Abhängigkeit ist JRE!Basis für verschiedene Prozess-Definitions-Sprachen

GPDGraphical Process Designer (Eclipse Plugin)

Quelle: http://www.jboss.org/jbossjbpm

Page 20: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

20

JEMS – Dienste

JBoss – DroolsBRMS (Business Rules Management System)Regelbasierte Systeme - Automatisierung einer Wissensbasis!Bestandteile

Drools GuvnorRepository für die Wissensbasis und Autoren-WerkzeugeDrools ExpertInferenzmaschine oder Rule Engine, welches den Rete-Algorithmus (1979 Charles Forgy) implementiertDrools FlowWorkflow-EngineDrools FusionEreignisbasierte Steuerung auch Schaltzentrale

Page 21: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

21

JEMS – Dienste

JBoss – JGroupsFramework für multicast Kommunikation.

JBoss – IIOPCORBA/IIOP (Internet Inter-ORB Protocol)Bestandteil des JBoss AS

JBoss – BlacktieErlaubt den Zugriff von XATMI-Anwendungen (X/Open ApplicationTransaction Monitor Interface) auf den JBoss AS.

JBoss – TransactionsUnterstützung für verteilte Transaktionen in heterogenen IT-Umgebungen.

JBoss – MessagingImplementierung des Java Message Sercive (JMS).JMS dient der Kommunikation von lose gekoppelten Systemen, welche verlässlich und optional asynchron verlaufen muss.

JBoss – HornetQImplementiert ebenfalls das JMS.Hohe Performanz und Clustering-Fähigkeit stehen im Vordergrund

Page 22: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

22

JEMS – Dienste

JBoss – Web ServicesImplementierung des JAX-WS Standards.Bestandteil des JBoss ASErlaubt die Integration verschiedener WS-Stacks: JBossWS Native, Apache CXF oder GlassFish Metro.

Quelle: http://www.jboss.org/jbossws

Page 23: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

23

JEMS – Dienste

JBoss – RiftSawBasiert auf dem Apache ODE (Orchestration Director Engine)WS-BPEL 2.0 Engine für die Web Service-Orchestrierung

JBoss – JCAEAI-LösungImplementierung des Java Connector Architecture-Standards.Service Provider Interface (SPI)Common Client Interface (CCI)

JBoss – ClusteringBestandteil des JBoss AS.Distributed Deployment und Load-BalancingFarming

Page 24: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

24

JEMS – Dienste

JBoss – RemotingPluginbasierte Transport-Schicht

Socket (SSL Socket)RMIHTTPS

Pluginbasierte Marshalling-SchichtDatenkompression

JBoss – Cache Unterstützung für verteilte Caches

Synchronisation der Caches in verteilten UmgebungenBasis vieler JBoss Projekte

JBoss – InfinispanData Grid LösungUnterstützt die in JSR-107 definierte Cache-SchnittstelleMassive Heap

Skalierbarkeit

Page 25: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

25

JEMS – Serverinfrastruktur

JBoss – MobicentsImplementierung eines Service Logic Execution Environments (SLEE)

Deckt die Bedürfnisse von Ereignis-getriebenen Anwendungen (z.B. Telekommunikation) abSLEE ist ein Teil der JAIN-Architektur: Java APIs for Integrated Networks. JAIN dient der Java-basierten Entwicklung von Telefon-und Datennetzen.

JBoss – MicrocontainerJava Management Extensions (JMX) Microkerner für die Verwaltung von POJOsBenötigt nicht die Umgebung, die im JMX-Standard verlangt wird.

JBoss – Application ServerJava EE zertifizierte Plattform

JBoss – WebBasiert auf dem Apache TomcatContainer für JSPs, Servlets, bietet aber auch PHP- und CGI-UnterstützungLaut JBoss 2-3mal schneller als der Apache Tomcat (SSL)

Page 26: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

26

JEMS – Serverinfrastruktur

JBoss – TeiidDatenzugriff und -visualisierung auf heterogene Quellen

TeilkomponentenQuery EngineJDBC-TreiberConnectorenWerkzeuge

Quelle: http://www.jboss.org/teiid

Page 27: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

27

JEMS – Management

JBoss – OverlordHintergrund

Software-Systeme benötigen i.d.R. eine IT-Governance (Steuerung, Verwaltung, Regelung)Hauptziel: Anforderungen an die IT und strategische Bedeutung von IT aus Sicht der Kern- und Führungsprozesse im Unternehmen verstehen.

Overlord ist das IT-Governance-Projekt für die JBoss SOA PlattformProjekt besitzt Querbezüge zu anderen JBoss Projekten

JBoss DNAJBoss ESB

Page 28: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

28

JEMS – Management

JBoss – GuvnorOverlord benötigt ein Repository, um den Lebenszyklus eines Web-Services zu verwalten und die Wiederverwendung bzw. -auffindung zu unterstützen (Schlüsselprinzipien der SOA)In dem Repository werden Web-Services und alle wichtigen Artefakte abgelegt

BeschreibungenMetadatenKonfigurationsdateienetc.

Guvnor unterstützt die Versionierung dieser Informationen über die gesamte Spanne des Lebenszyklus

JBoss – DNAImplementierung des Content Repository API for Java (JCR).Spezifiziert nach JSR-170 und JSR-283Nach Außen wie ein gewöhnlicher JCR RepositoryIntern können durch Connectoren beliebige Daten angezogen werden.

Page 29: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

29

JEMS – Management

JBoss – JMXKern der JBoss Microkernel-ArchitekturImplementierung der Java Management Extensions (JMX) nach JSR-3

Verwaltung und Überwachung von Java-Anwendung

Distributed Services Level

Agent Level

Client A

«MBean»

Client B

Ada

pter

MB

ean

Ser

ver

Instrumentation Level

«MBean»

«MBean»

Ada

pter

Page 30: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

30

JEMS – Management

JBoss – JoprCommunity Pendant zum JBoss Operations NetworkVerwaltungs- und Überwachungswerkzeug zu dem JBoss Enterprise Middleware Suite (JEMS)

Automatische Auffindung von ResourcenIT-InventarVerfügbarkeits- und PerformanzmessungKonfigurationsmanagementSicherheit

Page 31: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

31

JEMS – Werkzeuge

JBoss – Teiid DesignerDatenanbindungen entwickeln (VDB), ohne die Teiid-Laufzeit verwenden zu müssenEclipse Plugin

JBoss – JRUnitErweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests

JBoss – ToolsEclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

Hibernate, JBoss AS, Drools, jBPM, JSF, Seam, Smooks, JBoss ESB, JBoss Portal, etc.

JBoss – ProfilerProfiler auf Basis des JVMPI (Java Virtual Machine Profiler Interface) und des JVMTI (Java Virtual Machine Tool Interface)

JBoss – Distributed Testing ToolVerteilte Tests in heterogenen UmgebungenWerkzeug unterstützt die Koordinierung und Entwicklung dieser Tests

Page 32: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

32

JEMS – Werkzeuge

JBoss – TattletaleAnalyse-Werkzeug, um große Mengen an JAR-Dateien zu analysieren

AbhängigkeitenRedundanzenAuffindung von Java-Class-DateienVersionsunterschiede

JBoss – BytemanBytecode Injection Werkzeug

Page 33: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

33

Zusammenfassung

FazitViele nützliche, stabile Projekte innerhalb des J2EE-Stacks.Community-Projekte sind gut dokumentiert.Die JBoss-IT-Landkarte wird sich noch verändern.

Nicht zugeordnete ProjekteUnstimmigkeiten bei der Einordnung

Blick lohnt sich!

Vielen Dank!

Page 34: JBoss Technology Map - w3l.de · Erweiterung von JUnit um Benchmarks und verteilten Client/Server-Tests JBoss – Tools Eclipse Plugin, welches eine Vielzahl von JBoss Projekten installiert

In Zusammenarbeit mit der Fachhochschule Dortmund bieten wir

zwei Online-Studiengänge B.Sc. Web- und MedieninformatikB.Sc. Wirtschaftsinformatik

und 7 Weiterbildungen im IT-Bereich an.

W3L-AkademieInhouse-Schulungen

Wir bieten Inhouse-Schulungen und Beratung durch unsere IT-Experten und –Berater.

SchulungsthemenSoftwarearchitektur (OOD)

Requirements Engineering (OOA)

Nebenläufige & verteilte

Programmierung

Gerne konzipieren wir auch eine individuelle Schulung zu Ihren Fragestellungen.

Flexibel online lernen und studieren!

Sprechen Sie uns an!Tel. 0231/61 804-0, [email protected]

Besuchen Sie unsere Akademie!http://Akademie.W3L.de