11
ATHOS Benutzertreffen 2007 27.September 2007 - 1 ASAM ODS mit Mircosoft C# download: http://www.highqsoft.serveftp.net Glashütten, 27.September 2007 HighQSoft GmbH, Andreas Hofmann [email protected] www.highqsoft.de / www.highqsoft.com

ATHOS Benutzertreffen 2007

  • Upload
    najila

  • View
    41

  • Download
    0

Embed Size (px)

DESCRIPTION

ATHOS Benutzertreffen 2007. ASAM ODS mit Mircosoft C# download: http://www.highqsoft.serveftp.net Glashütten, 27.September 2007 HighQSoft GmbH, Andreas Hofmann [email protected] www.highqsoft.de / www.highqsoft.com. 27.September 2007 - 1. ASAM ODS - CORBA. - PowerPoint PPT Presentation

Citation preview

Page 1: ATHOS Benutzertreffen 2007

ATHOS Benutzertreffen 2007

27.September 2007 - 1

ASAM ODS mit Mircosoft C# download: http://www.highqsoft.serveftp.net

Glashütten, 27.September 2007

HighQSoft GmbH, Andreas [email protected]

www.highqsoft.de / www.highqsoft.com

Page 2: ATHOS Benutzertreffen 2007

ASAM ODS - CORBA

27. September 2007 - 2

• ASAM schlug CORBA als plattformunabhängige Infrastruktur vor.

• Schnittstellen wurde in CORBA IDL (Interface Definition Language) definiert.

• Den Implementierungen steht es frei andereProtokolle zu verwenden.

• AVALON ist ein CORBA Server

Page 3: ATHOS Benutzertreffen 2007

CORBA – C#

27. September 2007 - 3

• CORBA definiert eine Infrastruktur. Teil dieser Infrastruktur ist die Definition, wie Daten über Netzwerk übertragen werden.

• C# ist eine Programmiersprache für die von Microsoft definierte Infrastruktur COM.

• Die verwendeten Netzwerkprotokolle unterscheiden sich zu sehr, so dass ein einfaches Mapping nicht möglich ist.

Page 4: ATHOS Benutzertreffen 2007

C#

27. September 2007 - 4

• Kommt im MS-Office Umfeld zum Einsatz.

• Derzeit werden eher aufwändige Transportverfahren verwendet, um die Verarbeitung von ASAM ODS Daten zu ermöglichen. • Eine Brücke würde diese Verfahren überflüssig machen.

Page 5: ATHOS Benutzertreffen 2007

Lösungsansätze

27. September 2007 - 5

• Derzeit sind uns 2 Programme bekannt, mit denen eine Anbindung zu einem ASAM ODS Server realisiert wurde.

1. CORBA/COM Wrapper von Reinhard Kessler• Nur unvollständig, aber dennoch in Benutzung• www.ibkessler.de

2. IIOP.NET ist eine Dimplomarbeit an der ETH Zürich• Wird in einer Testphase bei Bosch und BASF

eingesetzt.• www.iiop-net.sourceforge.net

Page 6: ATHOS Benutzertreffen 2007

IIOP-NET

27. September 2007 - 6

• Derzeit liegt die Version 1.9.0 vor.• Ist gegen die bekannten ORB Implementierungen

(SUN JDK, MICO, TAO, OmniORB, JacORB) getestet.

• Ist kompatibel zu bekannten Application-Server (IBM WEBSphere, JBoss, BEA WEBLogic).

• Erzeugt aus der CORBA IDL (ods511.idl) eine Bibliothek

• Hauptproblem, wie bei allen CORBA Clients, ist die Initialisierung.

Page 7: ATHOS Benutzertreffen 2007

Unterschiede zur ODS IDL

27. September 2007 - 7

• TS_Union.stringVal() – TS_Union.GetstringVal()

• TS_Union.stringVal(val) – TS_Union.SetstringVal(val)

• AoFactory.getType – AoFactory._getType()• AoSession.getType – AoSession._getType()• AoBaseElement.getType – AoBaseElement._getType()

• Nicht jede Klasse wurde von uns explizit durchgesehen.

Page 8: ATHOS Benutzertreffen 2007

Initialisierung

27. September 2007 - 8

// Initialize a CORBA client channel.IiopClientChannel channel1 = new IiopClientChannel();ChannelServices.RegisterChannel(channel1, false);

// Initialize the CORBA environment.CorbaInit init = CorbaInit.GetInit();

// Get the name service from host TESTSERVER:2809NamingContext nameService = init.GetNameService("TESTSERVER", 2809);

// Get the name service component TestModel/DB.ASAM-ODSNameComponent[] name = new NameComponent[] { new NameComponent("TestModel/DB", "ASAM-ODS") };Object obj = nameService.resolve(name);AoFactory aoFactory = (AoFactory)obj;AoSession session = aoFactory.newSession("USER=andy, PASSWORD=secret");

Page 9: ATHOS Benutzertreffen 2007

MS-EXCEL Steuern

27. September 2007 - 9

//Start Excel and get Application object.oXL = new Excel.Application();oXL.Visible = true;

//Get a new workbook.oWB = (Excel._Workbook)(oXL.Workbooks.Add("ASAM ODS Context"));oSheet = (Excel._Worksheet)oWB.ActiveSheet;

// Add the context variables to the sheet.NameIterator nameIterator = aoSession.listContext("*");int count = nameIterator.getCount();String key;for (int i=0; i<count; i++) { key = nameIterator.nextOne(); oSheet.Cells[1, i] = key; oSheet.Cells[2, i] = aoSession.getContextByName(key). value.u.GetstringVal(); }

Page 10: ATHOS Benutzertreffen 2007

WARNUNG !

27. September 2007 - 10

• Bibliothek wurde von uns nur in Grenzen getestet. Dabei wurden allerdings keine Probleme aufgedeckt.

• Wie das Mapping vollzogen wird ist uns gänzlich unbekannt. Es könnte beim Zugriff auf die Massendaten zu Speicher- oder Performance-Problemen kommen.

• Es gibt kleine Unterschiede zur IDL, die man aber verkraften kann.

Page 11: ATHOS Benutzertreffen 2007

Vielen Dank für Ihre Aufmerksamkeit