Mitglied der Fachhochschule Ostschweiz FHO 1www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
S
oft
war
e E
ng
inee
rin
g
Software Architektur II
Verteilte Anwendungsarchitekturen:
Java EE
.NET
CORBA
Mitglied der Fachhochschule Ostschweiz FHO 2www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Lernziele
Sie können ...– den Java Community Process erläutern– die 3 Java Plattformen benennen– die Architektur von Java Enterprise darlegen– die wichtigsten Elemente der .NET-Architektur benennen– die Grundzüge der CORBA-Architektur erläutern
Mitglied der Fachhochschule Ostschweiz FHO 3www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
JCP – Java Community Process
Community zur Weiterentwicklung der Java Technology Specifications
Unter der Führung von Sun Microsystems– www.jcp.org
Prozess zur Standardisierung:
Mitglied der Fachhochschule Ostschweiz FHO 4www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java Platform
Einheitliche Programmiersprache: Java
Plattformunabhängigkeit
3 unterschiedliche Ebenen:– Java Platform, Standard Edition (früher J2SE)
• Basisklassen für das Java Runtime auf einem Knoten– Java Platform, Enterprise Edition (früher J2EE)
• Architektur für verteilte Anwendungen:– 1999: J2EE 1.2/EJB 1.1– 2001: J2EE 1.3/EJB 2.0– 2003: J2EE 1.4/EJB 2.1– 2006: Java EE 5
– Java Platform, Micro Edition (früher J2ME)• für mobile Geräte (PDA, Handy)
Quelle der nachfolgenden Illustrationen: http://java.sun.com
Mitglied der Fachhochschule Ostschweiz FHO 5www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Layer-Architektur I
Mitglied der Fachhochschule Ostschweiz FHO 6www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Layer-Architektur II
Mitglied der Fachhochschule Ostschweiz FHO 7www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Container-Architektur
JSP – Java Server PagesEJB – Enterprise Java Bean
Rich Client
Thin Client
Web Server Application Server
Mitglied der Fachhochschule Ostschweiz FHO 8www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Web-Tier
2 Arten von Web-Applikationen:– Presentation-Oriented Client mit Browser– Service-Oriented Programm als Client (Consumer) eines Web-Services
Mitglied der Fachhochschule Ostschweiz FHO 9www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Business Tier
Komponentenmodell auf dem Anwendungsserver
Arten von Komponenten (EJB – Enterprise Java Beans):– Session Beans (synchrone Aufrufe)
• Stateless (Zustandslos)• Stateful (Zustandsbezogen, behalten Attributswerte)
– Message Driven Beans (asynchrone Aufrufe)– Entity Beans (Persistenz-Repräsentant)
Mitglied der Fachhochschule Ostschweiz FHO 10www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Session Beans I
Standardmethoden:– setSessionContext() – Metainformationen– ejbCreate() - Konstruktor– ejbRemove() - Destruktor– ejbActivate() / ejbPassivate()
Lifecycle von Sessions Beans:
Mitglied der Fachhochschule Ostschweiz FHO 11www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Message Driven Beans
Empfänger von asynchronen Nachrichten
Implementierung der JMS (Java Message Services)
Standardmethoden:– ejbCreate()/ejbRemove()– setMessageDrivenContext()– onMessage()
• Teil der MessageListener-Schnittstelle, Nachrichten werden dieser Methode zur weiteren Verarbeitung übergeben
Lifecycle einer Message Driven Bean:
Mitglied der Fachhochschule Ostschweiz FHO 12www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Persistenz
Persistenz – Abspeichern von langlebigen Instanzen in ein DBMS
Der Dienst wird durch den Entity-Manager angeboten– javax.persistence.EntityManager
Java EE bietet ein Handling von Relationalen Datenbankdaten in Java-Objekten an:– Java Persistenz API– Query Language– Object/Relational Mapping – Metadaten
Persistenz-Konzepte:– CMP – Container-Managed Persistence– BMP – Bean-Managed Persistence
Mitglied der Fachhochschule Ostschweiz FHO 13www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Entity Beans
Repräsentanten von Entitäten in Datenbanken
Standardmethoden einer CMP Entity Bean:– Select-Methoden– setEntityContext()– ejbCreate() / ejbRemove()– ejbPostCreate()– ejbLoad() / ejbStore()
• wird nur von BMP Entity Beans verwendet
Lifecycle einer Entity Bean:
Mitglied der Fachhochschule Ostschweiz FHO 14www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Transaktionen I
Container-Managed Transaction (CMT)– Anhand des Transaktionsattributes wird das
Transaktionsmanagement automatisch vorgenommen:
Mitglied der Fachhochschule Ostschweiz FHO 15www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Transaktionen II
Bean-Managed Transactions (BMT)– Die Transaktion wird individuell programmiert
• Datenbanktransaktionen: JDBC-Transcactions• Bean-Transaktionen: JTA (Java Transaction API)
Beispielcode:
Mitglied der Fachhochschule Ostschweiz FHO 16www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Security
Im neuen Standard wird diesem Aspekt grosse Bedeutung zugeordnet.
2 Ebenen von Sicherheitsvorkehrungen:– Container: Declarative Security– Component: Programmatic Security
Zielsetzungen der Massnahmen:– Authentifizierung (Authentication)– Autorisierung (Authorization, Access Control)– Datenintegrität (Data Integrity)– Vertraulichkeit (Confidentiality, Privacy)– Nicht Abstreitbarkeit einer Handlung (Non-Repudiation)– Verfügbarkeit (QoS, Quality of Service, Availability)– Nachvollziehbarkeit (Auditing)
Mitglied der Fachhochschule Ostschweiz FHO 17www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Blueprints
Vorgaben in Form von Muster (Pattern)
Bewährte Konzepte werden verfügbar / nutzbar
Musterarchitekturen (Java EE Blueprint Design Guidelines)• Für Client-Tier• Für Web-Tier• Für EJB-Tier• Für Integration-Tier• Transaktionsverwaltung• Internationalisierung
http://java.sun.com/blueprints/enterprise/index.html
Mitglied der Fachhochschule Ostschweiz FHO 18www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java EE: Web-Service
Unterstützung der Normen:– UDDI (Directory)– WSDL (Beschreibung)– SOAP (Kommunikation)
Mitglied der Fachhochschule Ostschweiz FHO 19www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java ME: Mobile Service Architecture
Mitglied der Fachhochschule Ostschweiz FHO 20www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Java Certification Program
Mitglied der Fachhochschule Ostschweiz FHO 21www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Weiterführende Tutorials
http://java.sun.com/javaee/learning/
Mitglied der Fachhochschule Ostschweiz FHO 22www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
IIS (Internet Information Server, Web-Server)
ClientsWorkstations Notebooks Handhelds Handy Web Services
SQL-Server
MTS (Microsoft Transaction Server)
COMCOM
COM
.NET Framework
WebServices
ASP
ExchangeServer
BizTalkServer
ADO.NET ...
.NET EnterpriseServer
Component Object Model
.NET-Architektur
Mitglied der Fachhochschule Ostschweiz FHO 23www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
.NET versus Java EE
Mitglied der Fachhochschule Ostschweiz FHO 24www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
OMG – Object Management Group
Standardisierungsgremium– Hunderte von Unternehmungen stehen dahinter
Folgende wichtige Standards werden von OMG gepflegt:– OMA – Object Management Architecture
• CORBA – Common Object Request Broker Architecture– MDA – Model Driven Architecture
• UML – Unified Modeling Language
www.omg.org
Mitglied der Fachhochschule Ostschweiz FHO 25www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
OMA – Object Management Architecture
Client-Side
Server-Side
Zugekaufte Komponenten:- Domain (vertical) – branchenspezifisch- Horizontal – allgemeine Dienste (z.B. Doku-Verwaltung)
Basisdiensteca. 20 ServicesZ.B. Security-Service
ORB – Object Request BrokerInterface: IDL – Interface Description LanguageTransport: IIOP – Internet Inter ORB Protocol
Mitglied der Fachhochschule Ostschweiz FHO 26www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
CORBA
Aktuelle Version 3.0
Hauptzielsetzungen:– Objektorientierung– Ortstransparenz– Sprachunabhängigkeit
• eingesetzte Programmiersprache (z.B. Java, C++, …)– Interoperabilität
• Zusammenarbeit zwischen Plattformen (z.B. OS/390, AIX, Win, …)– Portabilität
• Anwendungen installierbar auf unterschiedlichen Plattformen
www.corba.org
www.orbzone.org
Mitglied der Fachhochschule Ostschweiz FHO 27www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Architektur von CORBA
POA – Portable Object Adapter
Mitglied der Fachhochschule Ostschweiz FHO 28www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
IDL - Schnittstellensprache
Deklarative (beschreibende) Sprache– Source-Files mit Endung .IDL– IDL-Compiler setzen diese zu Stubs bzw. Skeleton ums.
Beispiel:
module myModule01 {
interface myInterface01 :myFatherInterface01 {
attribute string myAttribute01;
attribute …
void myMethod01 (in float myParameter01,
out double myParamter02,
inout boolean myParameter03);
void …
};
};
Mitglied der Fachhochschule Ostschweiz FHO 29www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
CORBAServices
Basisdienste
Beispiele: – INS – Interoperable Naming Service
• Publizieren von Objektreferenzen• Zugriff auf Objektreferenzen
– OTS – Object Transaction Service• Ermöglichung von verteilten Transaktionen
(distributed transactional support)– A - Atomicity– C - Consistency– I - Isolation– D - Durability
Mitglied der Fachhochschule Ostschweiz FHO 30www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Produkteanbieter
IONA – www.iona.com – ORBIX– ORBACUS
BEA – www.bea.com– TUXEDO
Weitere Info und komplette Liste von Implementationen:– http://en.wikipedia.org/wiki/CORBA
Mitglied der Fachhochschule Ostschweiz FHO 31www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Literaturempfehlung
Verteilte Systeme und Anwendungen
Ulrike Hammerschall
ISBN: 3-8273-7096-5
Pearson Studium