Einsatz offener Standards im ALMA Projekt Einsatz offener Standards im ALMA Projekt Heiko Sommer European Southern Observatory (ESO) Software Technology.

Slides:



Advertisements
Ähnliche Präsentationen
Objektrelationales Mapping mit JPA
Advertisements

Modellgetriebene Softwareentwicklung
Attribute Protocol.
DI Christian Donner cd (at) donners.com
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Pascal Busch, WWI00B – Vergleich CORBA vs. Web Services hinsichtlich der Applikationsintegration Web Services vs CORBA Web Services vs CORBA Ein Vergleich.
Java: Dynamische Datentypen
Komponentenbasierter Taschenrechner mit CORBA
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Konzeption und Implementierung einer XML-RPC und SOAP Anbindung Praktikumsbericht von Martin Spindler.
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
XDoclet ETIS SS05.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
JAVA RMI.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Remote Methode Invocation (RMI)
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
SOMA Service-Oriented Mobile learning Architecture.
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Herzlich Willkommen… welcome… soyez la bienvenue….
SKALIERBARE HARDWARE UNABHÄNGIGE LÖSUNGEN FÜR HSM, ARCHIVIERUNG UND SICHEREN DATENAUSTAUSCH YOUR DATA. YOUR CONTROL.
Applets Java für’s Web.
Die .NET Common Language Runtime
Die .NET Common Language Runtime
Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,
Web Services Die Zukunft netzbasierter Applikationen iternum GmbH Alexanderstraße Frankfurt/Main
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
SQL Server 2005 CLR-Integration
Mit 3 Schichte zum Erfolg
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Architekturen und Techniken für computergestützte Engineering Workbenches.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 2013 Kapitel 6 Folie 2 WCF Data Services (1) s.a.
Sesame Florian Mayrhuber
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
Beschreiben Sie eine Web Interaktion mittels Java Applets.
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
ACS extended ACS as the framework for the ALMA data flow system
Programmbereich, zu dem eine Deklaration gehört Arten von Gültigkeitsbereichen -Namespace : Deklarationen von Klassen, Interfaces, Structs, Enums, Delegates.
Office in Java 2. Info-Point Urs Frei.
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
TDD mit MSTest Stefan Lieser
Untersuchungen zur Erstellung eines
Reinhold Rumberger Web Services.
Die AppDomain Das unbekannte Wesen?
Titelmasterformat durch Klicken bearbeiten Textmasterformate durch Klicken bearbeiten Zweite Ebene Dritte Ebene Vierte Ebene Fünfte Ebene 1 Rising energy.
Enhydra Shark Workflow-Management Frank Aurich Markus Reisch.
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
Verteilte Anwendungen: J2EE
Gewachsene Architektur Das kann nicht funktionieren!
 Präsentation transkript:

Einsatz offener Standards im ALMA Projekt Einsatz offener Standards im ALMA Projekt Heiko Sommer European Southern Observatory (ESO) Software Technology Forum 2002 Fachforum Datenaustausch mit XML 19. November 2002

Software Technology Forum Heiko Sommer (ESO) 2 ALMA Projekt Chile, Atacamawüste (5000 m): 64 Radioantennen weltweit leistungsstärkstes Radioteleskop Europa und USA/Canada als gleichberechtigte Partner $ 600 Mio (Software 5%) Fertigstellung , Betrieb ~50 Jahre

Software Technology Forum Heiko Sommer (ESO) 3 ESO Headquarters, GarchingVery Large Telescope, Chile ALMA Antennen (Simulation)

Software Technology Forum Heiko Sommer (ESO) 4 ALMA Software Schwerpunkt offene Standardtechnologien Absichten der Softwarearchitektur Welche Standardtechnologien? Warum? Warum andere nicht? Wann durch Eigenentwicklungen ergänzt? Wie werden sie eingesetzt?

Software Technology Forum Heiko Sommer (ESO) 5 ALMA Software grobe Unterteilung geschäftsprozeß-ähnliche Datenverarbeitung mit Webanbindung –Erstellen und Reviewing von Observing Projects –Dynamisches Scheduling –Aufwendige Operator/Admin Software Control-Software (Echtzeit) –Steuerung von Antennen, Receivern, Correlator, … Meßdatenverarbeitung (high performance) Datenspeicherung –Objektpersistenz –Meßdaten 1 TB/Tag –unzählige Monitordaten (timestamped)

Software Technology Forum Heiko Sommer (ESO) 6 ALMA Software Entwicklung Projektsituation kleine Teams, weltweit verteilt, selbst innerhalb der Subsystem-Teams oft ALMA-Engagement <50% pro Entwickler uneinheitliche Softwarekenntnisse und Entwicklungskulturen langer Entwicklungs- und Nutzungszeitraum technisch stark unterschiedliche Anforderungen an einzelne Subsysteme

Software Technology Forum Heiko Sommer (ESO) 7 ALMA Software Entwicklung Projektsituation (2) Prozess: bislang erfolgreiche Hinwendung zu Agile in einem traditionellen Wasserfall-Umfeld –Subsystem Leads Treffen mit CRC-ähnlichem Kartenspiel zur Konsolidierung der Interfaces –direkter Kontakt und persönliches Training waren entscheidend für die Akzeptanz eines einheitlichen Programmiermodells Aufteilung in funktionale und technische Architektur (Zusammenfassung der zahlreichen architectural views im Unified Process)

Software Technology Forum Heiko Sommer (ESO) 8 Anforderungen an die Techn. Architektur Unabhängigkeit der Subsysteme (build und run) Verteilung der Software über viele Rechner mit unterschiedlichen Betriebssystemen Einheitliche Verwendung zukunftssicherer Technologien Preiswerte Standards, z.B. Open Source Leichte Benutzbarkeit für alle Entwickler Speziallösungen integrieren stufenweise Inbetriebnahme der Software Erweiterbarkeit für neue fachliche Anforderungen und Technologien

Software Technology Forum Heiko Sommer (ESO) 9 Architektur: Kernelemente Auf CORBA aufbauendes leichtgewichtiges Komponentenmodell Entkoppelung der Subsysteme durch Object by Value Kommunikation mittels XML Persistenz mittels XML (außer Meßdaten) XML Schema als verbindliche Datendefinition XML binding classes für typsicheren Datenzugriff Elemente der technischen Architektur werden als Framework den Entwicklern zur Verfügung gestellt: Alma Common Software (ACS)

Software Technology Forum Heiko Sommer (ESO) 10 CORBA + Container/Component Warum CORBA? Ausgereifte Middleware mit nützlichen Services (Notification, Streaming, …) für alle derzeit relevanten und wohl auch für zukünftige Programmiersprachen (Java, C++, Python, ???) kostenlos erhältlich echtzeittauglich (ACE+TAO) IDL + OCL (+ value objects) als minimaler Vertrag zwischen Subsystemen

Software Technology Forum Heiko Sommer (ESO) 11 CORBA + Container/Component Warum Container/Component Modell? Technische Belange zentral regeln und vor Entwicklern verstecken –Deployment, Start-up –Auswahl und Konfiguration der verschiedenen ORBs; hier ist CORBA allein eindeutig zu kompliziert. –Auswahl der CORBA Services, Verbindung mit eigenen systemweiten Services (Error, Logging, Konfiguration, …) –Vereinfachter Zugriff auf andere Komponenten und Resourcen zur Laufzeit Weitere heute noch nicht vorhersehbare Dinge können transparent eingehängt werden

Software Technology Forum Heiko Sommer (ESO) 12 CORBA + Container/Component ALMA Container-Components Eine Komponente ist ein spezieller CORBA servant –Implementiert Lifecycle Interface (Aufruf durch Container) –Benutzt Container Interface –Nach außen hin: IDL functional interface Direkt ansprechbare Komponenten halten keinen client-state, können aber als Factory für stateful Objekte dienen Container besorgt sich sämtliche Daten zur Systemkonfiguration (component-autoloading, log- levels,...) aus zentralen Repositories

Software Technology Forum Heiko Sommer (ESO) 13 CORBA + Container/Component container Comp CORBA ORBs Services lifecycle interface: init() run() restart() Comp functional interface: observe() container service interface: getComponent(other) Logger getLogger() other ACS services Manager deployment configurations

Software Technology Forum Heiko Sommer (ESO) 14 CORBA + Container/Component por. container tight container Comp CORBA, ACS services Comp functional interface is intercepted by container Tight vs. Porous Container container manages start-up, remoting, …, but exposes the components functional interface directly

Software Technology Forum Heiko Sommer (ESO) 15 CORBA + Container/Component Warum nicht EJB Container für Java Komp.? Pro: etablierter Standard, keine Eigenentwicklung, kooperiert mit CORBA ALMA Komponenten sind meist stateless. Sie bearbeiten value objects oder backend systems. Daher Stateless Session Beans (oder Message Driven Beans für asynchronen Zugriff) Leistungen des EJB Container für SLSBs lediglich: –Instanz-Pooling –daraus folgend auch automatische Threadsicherheit

Software Technology Forum Heiko Sommer (ESO) 16 CORBA + Container/Component Warum nicht EJB Container für Java Komp.? (2) Anpassung von EJB Container schwierig –für transparente Integration der XML value objects –für zentrale Administration des Gesamtsystems (bestehende Eigenentwicklung) Integration mit CORBA nicht trivial –Interface Beschreibungen als IDL –Exceptions –Services Freie Verfügbarkeit von EJB Application Servern erscheint ungewisser als bei CORBA ORBs

Software Technology Forum Heiko Sommer (ESO) 17 XML value objects Kommunikation Warum Value Objects? Weniger Remote Calls/Netzbelastung, daher Performanzgewinn Laufzeitentkoppelung der Rechner erhöht Ausfallsicherheit Subsystem2 Logik obj.getFoo() Subsystem1 obj.getFoo() transport by value value object remote object

Software Technology Forum Heiko Sommer (ESO) 18 XML value objects Welche Daten als Value Objects? Persistente Objekte, z.B. User, ObservingProject, CorrelatorConfig zusätzlich einige weitere Typen, die umsortierte Sichten auf persistente Value Objects darstellen einfache Parameter können IDL Datentypen bleiben Listen von Value Objects nicht als eigenständige VO definieren, sondern mittels CORBA sequences.

Software Technology Forum Heiko Sommer (ESO) 19 XML value objects Kommunikation XML als Format für Value Objects Bei Verwendung von CORBA und verschiedenen Programmiersprachen wären CORBA valuetypes das einzige alternative Standardformat. Vergleich: XML auch für Persistenz der Daten geeignet XML auch für nicht-CORBA-Transport –http oder zum Einsenden von ObsProjects –Remote Administration

Software Technology Forum Heiko Sommer (ESO) 20 XML value objects Kommunikation XML als Format für Value Objects (2) XML Schema bietet strengere Deklaration und damit mächtigere automatisierbare Validierung CORBA valuetypes nicht ausreichend von ORBs unterstützt XML von Hand manipulierbar. Besonders wichtig bei stufenweiser Inbetriebnahme der Software.

Software Technology Forum Heiko Sommer (ESO) 21 XML value objects Kommunikation Warum Trennung von Daten/Funktionalität durch XML Value Objects? (Anti-OO) Trennung der Subsysteme (gleiche Idee wie bei Web Services) –Logische Entkoppelung: Absprachen zwischen allen Teams nur über Datenstrukturen –verteilte Funktionalität (teilweise redundant) erfordert Absprache nur zwischen weniger Partnern –Technische Trennung: Implementierungen der Funktionalität in verschiedenen Programmiersprachen

Software Technology Forum Heiko Sommer (ESO) 22 XML value objects Kommunikation Rechtfertigung der Trennung von Daten/ Funktionalität durch XML Value Objects (2) Verschiedene ALMA Subsysteme operieren recht unterschiedlich auf denselben Daten. Ein einheitliches Objektmodell über Subsysteme hinweg brächte oft nur geringe Vorteile. Umfangreiche Operationen auf den Daten, die in mehreren Subsystemen benötigt werden, werden als stateless Komponenten (Services) implementiert. Das Value Object wird dem Service zugespielt und verändert wieder abgeholt.

Software Technology Forum Heiko Sommer (ESO) 23 XML value objects Persistenz Nur ein Serialisierungsformat für Datenaustausch zwischen Komponenten und für Persistenz der Daten in der Datenbank –Schnellere Entwicklung –Geringere Anzahl an Technologien (Zuverlässigkeit) Einfaches lokales Speichern –auf Astronomen-Laptop –allgemein während der Entwicklung (Archiv noch nicht fertig…) XML schema kann zur Beschreibung des Datenmodells dienen, selbst wenn keine XML Datenbank verwendet wird.

Software Technology Forum Heiko Sommer (ESO) 24 CORBA + Container/Component Warum nicht Web Services? CORBA IIOP effizienter als HTTP Fehlende Optimierung im selben Adressraum –entweder alle Aufrufe ueber Web Service layer –oder verschiedene Interfaces: Client-Komponente muss wissen, ob die Server-Komponenten local oder remote ist (Objektreferenz oder XML), keine Transparenz mehr XML marshalling für alle Paramter (unperformant) – mit CORBA koennen wir entscheiden, welche Daten XML Value Object oder CORBA struct sind

Software Technology Forum Heiko Sommer (ESO) 25 XML value objects Datenstrukturen Wie werden komplexe Strukturen abgebildet? Gruppierung in verschiedene xml schemas Referenzierung –innerhalb eines Schemas: als Kind-Element –über Schemas hinweg: durch eine ID a1 a4 a2 XML Doc 1 schema A imports schema B XML Doc 2 schema B b1 a3 b3 b2 ref_b1 reference by ID

Software Technology Forum Heiko Sommer (ESO) 26 XML value objects Datenstrukturen Feste Portionierung der XML Daten durch das Schema-Design und Entkoppelung über IDs verhindert unsinnigen Transport kompletter Datenbäume, oder komplizierten automatischen Nachlade-Mechanismus ist vor allem dann sinnvoll, wenn meistens ähnliche Sichten auf das Datenmodell benötigt werden (bei ALMA erfüllt) die Applikationen müssen sich selber um die Referenzierung zwischen XML Dokumenten kümmern (beim Erzeugen und Nachladen)

Software Technology Forum Heiko Sommer (ESO) 27 XML value objects Datenstrukturen Anmerkungen zu den IDs ID wird in einer Singleton Factory erzeugt, die an die Datenbank gekoppelt ist. die Applikationskomponente bittet ihren Container, ein neu erzeugtes Value Object mit einer frischen ID zu versorgen. ID wird redundant verschlüsselt im XML Dokument gehalten, um spätere Änderungen auszuschließen.

Software Technology Forum Heiko Sommer (ESO) 28 XML Binding Beschreibung, Vorteile Java/C++ Klassen werden vom Binding Framework gemäss unserer XML Schemas generiert –Teil des Software Buildprozesses Typsichere get()/set() Methoden statt generischem Zugriff –auf Binding Classes basierende Value Objects sind daher garantiert aktuell –sonst Compilefehler (statt Laufzeitfehler) Parsen und Validierung sind im Binding Class Code enthalten, dadurch potentiell performanter als generische Methoden Castor (Java), evtl. XML Object Link (C++)

Software Technology Forum Heiko Sommer (ESO) 29 XML Binding Beispiel: Schemaauszug für Scheduling Block <xsd:element name="PhaseCalTarget" type="sbl:TargetT" minOccurs="0 maxOccurs="unbounded"/> <xsd:element name="PointingCalTarget" type="sbl:TargetT" minOccurs="0 maxOccurs="unbounded"/>

Software Technology Forum Heiko Sommer (ESO) 30 XML Binding Beispiel: Castor Binding Class für Scheduling Block package alma.entity.xmlbinding.schedblock; public class SchedBlock extends alma.entity.xmlbinding.obsproject.ObsUnitT implements java.io.Serializable { // just a few of the generated methods public void addObsTarget(TargetT vObsTarget) {…} public java.util.Enumeration enumerateObsTarget() {…} public alma.entity.xmlbinding.obsproject.ImagingProcedureT getSchedBlockImaging() {…} }

Software Technology Forum Heiko Sommer (ESO) 31 XML Binding Verwendung der Binding Classes Programmiermodelle Binding Classes direkt verwenden –triviale Funktionalität in Helper Klassen –andere Funktionalität in Services Wrapping oder Subclassing –Funktionalität und Daten zusammen –klare Strukturvorgabe für weniger erfahrene Entwickler separates Objektmodell relativ unabhängig von Binding Classes –Mapper code verwendet Binding Classes für XML De-/ Serialisierung. –Empfohlen für erfahrene Entwickler und entsprechend komplexe Subsysteme

Software Technology Forum Heiko Sommer (ESO) 32 XML Binding Organisation der Namespaces mehrere zusammengehörende Value Objects werden in einem Schema gebündelt ein solches Schema bekommt einen eigenen XML Namespace ( ) z.B. Alma/ObsProject das Schema kann auf verschiedene Files mit gleichem NS verteilt werden ( ) Vorteil: Castor bildet XML NS auf Java Packages ab, so dass die zahlreichen generierten files übersichtlicher in verschiedenen Packages liegen

Software Technology Forum Heiko Sommer (ESO) 33 XML Binding Erfahrungen mit dem Castor-XML Binding Framework –open source Projekt von Exolab –nur Castor-XML, nicht JDO und andere features Leistungsspektrum –entscheidend: xml schema statt DTD –einige wenige Schemakonstrukte werden nicht unterstützt; bislang kein Problem für ALMA –derzeit etwas langsame Weiterentwicklung Zuverlässigkeit –weniger häufig genutzte features teilweise fehlerhaft –funktionierende features blieben bislang auch stabil Selbsthilfe: patches werden dankbar akzeptiert

Software Technology Forum Heiko Sommer (ESO) 34 Transparente XML Integration Fachliche Interfaces von Komponenten sollen native binding classes statt flat XML enthalten. Komponenten und ihre Clients müssen dann nicht explizit XML Parameter parsen/serialisieren –weniger Code schreiben –kein Kontakt mit XML bei Berührungsängsten Optimierung durch Container: kann binding object durchreichen (ohne de-/ serialising), falls client- und server- Komponenten im selben Adressraum sind.

Software Technology Forum Heiko Sommer (ESO) 35 container Comp Transparente XML Integration Datenaustausch container Comp XML Comp Flat-XML API seen from outside Transparent-XML API implemented by component Mapping code layer XML Mit CORBA allein nicht möglich, daher Zwischen- schicht mit Java Reflection bzw. Codegenerator (kann als Teil des Containers betrachtet werden)

Software Technology Forum Heiko Sommer (ESO) 36 Transparente XML Integration Codegenerierung am Beispiel Java IDL-XML code generator XML-Java binding: ObsProject -> alma.data.ObsProject Transparent-XML IF... alma.data.ObsProject getObsProject() IDL compiler typedef xmlstring ObsProject; … ObsProject getObsProject() IDL IF Flat-XML IF... String getObsProject() mapping code return getObsProject.marshal()

Software Technology Forum Heiko Sommer (ESO) 37 Transparente XML Integration Bemerkungen Transparente XML-de/serialisierung auch dann, falls beide Komponenten in verschiedenen Sprachen implementiert sind Intern alles CORBA: sicheres remoting Kein Zwang: sowohl Client- als auch Server- Komponente können jederzeit direkt auf CORBA aufsetzen –falls es keinen code generator für eine bestimmte Sprache gibt –um einen speziellen Parser einzusetzen oder das XML ungeparst durchzureichen

Software Technology Forum Heiko Sommer (ESO) 38 Details Some Diagrams well look at if theres enough time left...

Software Technology Forum Heiko Sommer (ESO) 39 Architektur Diagramm XML Ware- house file Datamodel APIs C++ containerJ container Comp CORBA, ACS services Comp XML IDL ORBs, deployment configs value object lifecycle interface Comp functional interface: IDL, binding classes functional interface: IDL, flat XML

Software Technology Forum Heiko Sommer (ESO) 40 Transparente XML Integration CORBA view Operations IF (Flat-XML) SkeletonStub SkeletonImpl (mapping) inherits implements Transparent- XML IF Servant delegation implements Proxy (mapping) delegation Client Component I get that IF from my container - dont care about remote or local calls use me to get XML as a string CORBA remoting

Software Technology Forum Heiko Sommer (ESO) 41 CORBA + Container/Component Warum nicht Web Services? CORBA IIOP effizienter als HTTP Fehlende Optimierung im selben Adressraum –entweder alle Aufrufe ueber Web Service layer –oder verschiedene Interfaces: Client-Komponente muss wissen, ob die Server-Komponenten local oder remote ist (Objektreferenz oder XML), keine Transparenz mehr XML marshalling für alle Paramter (unperformant) – mit CORBA koennen wir entscheiden, welche Daten XML Value Object oder CORBA struct sind