Enterprise Middleware

Werbung
Softwareentwicklung in verteilten Umgebungen
Enterprise Middleware
Dieter Schmalstieg
Dieter Schmalstieg
SVU – Enterprise Middleware
Enterprise Information Systems
• Grosse Unternehmen
• Viele existierende
Anwendungen
• Business Logic
(Prozessunterstützung) ist ein wichtiger Aspekt
– Nicht in klassischer Middleware abgedeckt
• Oft klassischer Client-Server-Ansatz (2-Tier)
– Fat Client, integiert Business Logic
• Weiterverwendung der Anwendungen wichtig
• Integration der Anwendungen wichtig
Dieter Schmalstieg
SVU – Enterprise Middleware
Three-Tier Architecture
• Refactoring in
drei Schichten
• Mittlere Schicht ist neu
– Verwendung von Internet-Technologien
– Integiert Business Logic
– Kann ein standardisiertes Framework bieten
• Client basiert auf Internet-Technologien
– Reduziert Administration
– Reduziert Training
Dieter Schmalstieg
SVU – Enterprise Middleware
Java Platform, Enterprise Edition (Java EE)
• Standardisiertes Framework
für Middle Tier
• Kommuniziert mit
existierenden EIS
• Implementiert Business + Presentation Logic
• Ausführungsumgebung für Komponenten
– Enterprise Java Beans, Servlets, Java Server Pages
– Java Connector Architecture
• Implementierungen
– Open Source: Apache Geronimo, JBoss, GlassFish
– Kommerziell: Oracle App. Server, IBM WebSphere
Dieter Schmalstieg
SVU – Enterprise Middleware
Java EE Server Technologien
•
•
•
•
•
•
•
•
Enterprise Java Beans (EJB)
Java Servlet API (JSS)
JavaServer Pages (JSP)
Java Connector Architecture (JCA)
Java Message Service (JMS)
Web Services
Java Naming and Directory Interface (JNDI)
Java Authentication and Authorization
Service (JAAS)
Dieter Schmalstieg
SVU – Enterprise Middleware
Enterprise Application Integration
• Enterprise hat
viele App.Server und
viele EIS
• Integration nötig
• Lose Kopplung über „Bus“
• Applikationen werden an
Standard-Schnittstellen
angepasst
 Implementierung von Adaptern nötig
• Kontrakte beschreiben KomponentenEigenschaften
Dieter Schmalstieg
SVU – Enterprise Middleware
Ansätze für Adapter
- Jeder mit jedem
- „Business Bus“
- N x M Adapter nötig
- N + M Adapter nötig
Dieter Schmalstieg
SVU – Enterprise Middleware
Contracts
•
•
•
•
•
•
Acceptable input values/types + meaning
Return values/types + meaning
Error + exception values/types + meaning
Side effects
Preconditions, postconditions, invariants
(More rarely) Performance guarantees,
e.g., for time or space used
Dieter Schmalstieg
SVU – Enterprise Middleware
Beispiel: Java EE Connector Architecture
(KomponentenContainer)
Management von
- Verbindung
- Transaktionen
- Sicherheit
Dieter Schmalstieg
SVU – Enterprise Middleware
Service-Oriented Architecture (SOA)
Alle Komponenten müssen Services sein
• Grobgranular, eigenständig nutzbar
• Im Netz plattformunabhängig nutzbar
• Hat wohldefinierte Schnittstelle (Kontrakt)
• Im Verzeichnis registriert
• Dynamisch gebunden
Webservices können (müssen nicht) zur
Implementierung von SOA verwendet werden
Dieter Schmalstieg
SVU – Enterprise Middleware
Virtual Machines
System Virtual Machine
• Komplette HW
virtualisiert
• Für beliebiges OS
• Xen, VMWare ESX
Dieter Schmalstieg
Application Virtual Machine
• Nur Runtime Environment
für Prozesse
• JavaVM, .NET Common
Runtime Infrastructure
SVU – Enterprise Middleware
Virtual Machines für Komponenten
• Bedarf an Software-Widerverwendung auf
Binär-Ebene
• Moderne Programmiersprachen sind managed
–
–
–
–
–
Java, .C#, Managed C++
Ausführung in Application Virtual Machine
Kompilation in Byte Code/CIL
Interpretation zur Laufzeit
Reflection, Serialisierung
• Managed Objects eignen sich als Komponenten
– Beispiele: Java Beans, MS Component Object Model
Dieter Schmalstieg
SVU – Enterprise Middleware
Komponenten und Container
• Container = Laufzeitumgebung für Komponenten
• Komponente = spezielles Softwareobjekt
–
–
–
–
Öffentlicher Standardkonstruktor
Serialisierbar
Statuszugriff über public getter/setter
Verwaltbar ueber Introspection oder Metadaten/Contracts
• Container verwaltet Komponente
–
–
–
–
Komponente hat kein „Hauptprogramm“
Container regelt Instantiierung
Container regelt Aufruf
Container regelt Aktivierung und Deaktivierung (Auslagerung in
persistenten Speicher)
– Container kann Migration veranlassen  Grid, Cloud
Dieter Schmalstieg
SVU – Enterprise Middleware
Beispiel: Enterprise Java Beans
• Entity Bean
– Zur persistenten Datenspeicherung
– Entity-Manager verantwortlich für Attachment,
Detachment, Re-Attachment
• Session Bean
– Stateful: zur Verwaltung von Benutzersessions
– Stateless: z.B. zur Abbildung von Web Services
• Message Driven Beans
– für Kommunikation mit Legacy Systems durch
Java Messaging Service
Dieter Schmalstieg
SVU – Enterprise Middleware
Internet-basierte Clients
• Thin Client basiert nur
auf Web-Technologien
• Einfacher Webbrowser
– Präsentationslogik auf Server-Seite
– Beispiel: Server Pages (Active Server Pages,
Java Server Pages)
• Webbrowser Applet
– Mobiler Code im Browser als Container
– Präsentationslogik (auch) auf Client-Seite
– Beispiel: Java Applet, AJAX/REST
Dieter Schmalstieg
SVU – Enterprise Middleware
Server Pages
• Präsentationsaufgaben
– Annehmen und Überwachen von Client Zugriffen
– Trennung von Präsentation und Darstellungslogik
– Benutzeraufgaben aufbereiten…
• Mischung aus HTML + prozeduralem Code
– Java Server Pages: HTML + Java
– MS Active Server Pages:
HTML + Perl, Python, …
• Prozeduraler Code
– Wird in Bytecode
vorkompiliert
– Wird in Container
ausgeführt (Servlet)
– Nur bei Bedarf
– Keine echte Komponente
Dieter Schmalstieg
SVU – Enterprise Middleware
AJAX
• AJAX (Asynchronous Javascript and XML)
• Download von HTML + Javascript in
Standard-Browser
• DOM des HTML-Dokuments für die
Darstellung
• Asynchrones Nachladen von Teilen des DOM
durch Javascript-Code
• Immer selbe HTML-Seite  garantiert immer
schnelle Darstellung
• Spezielle Ausprägung von REST […]
Dieter Schmalstieg
SVU – Enterprise Middleware
REST
• REsidential State Transfer
• Absichtlich einfacher Softwarearchitekturstil
• Adressierbarkeit
– Jede Resource über URI ansprechbar
– Verwaltung durch HTTP GET, POST, PUT,
DELETE
– Jede HTTP-Message ist self-contained
• Stateless
– Server verwaltet nur Resourcen
– Server weiß nichts über Client
– Server ist einfach skalierbar
Dieter Schmalstieg
SVU – Enterprise Middleware
Zusammenfassung
• Moderne Middleware-Frameworks
– Java EE, .NET
Möglichst Web-basiert
Tw. Presentation Logic
Eigentliche MiddlewarePlatform
Komponenten- und
Container-Modell
Möglichst unveränderte
Legacy-Systeme
Business-Logic
Dieter Schmalstieg
SVU – Enterprise Middleware
Ende
Dieter Schmalstieg
SVU – Enterprise Middleware
Herunterladen