Software Architektur II Verteilte Anwendungsarchitekturen: Java EE .NET CORBA
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
JCP – Java Community Process Community zur Weiterentwicklung der Java Technology Specifications Unter der Führung von Sun Microsystems www.jcp.org Prozess zur Standardisierung:
Plattformunabhängigkeit 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
Java EE: Layer-Architektur I
Java EE: Layer-Architektur II
Java EE: Container-Architektur Rich Client Thin Client Web Server Application Server JSP – Java Server Pages EJB – Enterprise Java Bean
Java EE: Web-Tier 2 Arten von Web-Applikationen: Presentation-Oriented Client mit Browser Service-Oriented Programm als Client (Consumer) eines Web-Services
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)
Java EE: Session Beans I Standardmethoden: setSessionContext() – Metainformationen ejbCreate() - Konstruktor ejbRemove() - Destruktor ejbActivate() / ejbPassivate() Lifecycle von Sessions Beans:
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:
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
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:
Java EE: Transaktionen I Container-Managed Transaction (CMT) Anhand des Transaktionsattributes wird das Transaktionsmanagement automatisch vorgenommen:
Java EE: Transaktionen II Bean-Managed Transactions (BMT) Die Transaktion wird individuell programmiert Datenbanktransaktionen: JDBC-Transcactions Bean-Transaktionen: JTA (Java Transaction API) Beispielcode:
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)
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
Java EE: Web-Service Unterstützung der Normen: UDDI (Directory) WSDL (Beschreibung) SOAP (Kommunikation)
Java ME: Mobile Service Architecture
Java Certification Program
Weiterführende Tutorials http://java.sun.com/javaee/learning/
.NET-Architektur Clients IIS (Internet Information Server, Web-Server) Workstations Notebooks Handhelds Handy Web Services IIS (Internet Information Server, Web-Server) MTS (Microsoft Transaction Server) .NET Framework COM Component Object Model Web Services ASP ADO.NET ... .NET Enterprise Server BizTalk Server SQL-Server Exchange Server
.NET versus Java EE
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
OMA – Object Management Architecture Zugekaufte Komponenten: - Domain (vertical) – branchenspezifisch - Horizontal – allgemeine Dienste (z.B. Doku-Verwaltung) Client-Side ORB – Object Request Broker Interface: IDL – Interface Description Language Transport: IIOP – Internet Inter ORB Protocol Server-Side Basisdienste ca. 20 Services Z.B. Security-Service
CORBA Aktuelle Version 3.0 Hauptzielsetzungen: www.corba.org 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
Architektur von CORBA POA – Portable Object Adapter
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 … };
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
Produkteanbieter IONA – www.iona.com BEA – www.bea.com ORBIX ORBACUS BEA – www.bea.com TUXEDO Weitere Info und komplette Liste von Implementationen: http://en.wikipedia.org/wiki/CORBA
Literaturempfehlung Verteilte Systeme und Anwendungen Ulrike Hammerschall ISBN: 3-8273-7096-5 Pearson Studium