1 / 11

ATHOS Benutzertreffen 2007

ATHOS Benutzertreffen 2007. ASAM ODS mit Mircosoft C# download: http://www.highqsoft.serveftp.net Glashütten, 27.September 2007 HighQSoft GmbH, Andreas Hofmann andreas.hofmann@HighQSoft.de www.highqsoft.de / www.highqsoft.com. 27.September 2007 - 1. ASAM ODS - CORBA.

najila
Download Presentation

ATHOS Benutzertreffen 2007

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. ASAM ODS - CORBA • ASAM schlug CORBA als plattformunabhängige • Infrastruktur vor. • Schnittstellen wurde in CORBA IDL • (Interface Definition Language) • definiert. • Den Implementierungen steht es frei andere • Protokolle zu verwenden. • AVALON ist ein CORBA Server 27. September 2007 - 2

  3. CORBA – C# • 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. 27. September 2007 - 3

  4. C# • 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. 27. September 2007 - 4

  5. Lösungsansätze • Derzeit sind uns 2 Programme bekannt, mit denen eine Anbindung zu einem ASAM ODS Server realisiert wurde. • CORBA/COM Wrapper von Reinhard Kessler • Nur unvollständig, aber dennoch in Benutzung • www.ibkessler.de • IIOP.NET ist eine Dimplomarbeit an der ETH Zürich • Wird in einer Testphase bei Bosch und BASF eingesetzt. • www.iiop-net.sourceforge.net 27. September 2007 - 5

  6. IIOP-NET • 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. 27. September 2007 - 6

  7. Unterschiede zur ODS IDL • 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. 27. September 2007 - 7

  8. Initialisierung // 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:2809 NamingContext nameService = init.GetNameService("TESTSERVER", 2809); // Get the name service component TestModel/DB.ASAM-ODS NameComponent[] 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"); 27. September 2007 - 8

  9. MS-EXCEL Steuern //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(); } 27. September 2007 - 9

  10. WARNUNG ! • 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. 27. September 2007 - 10

  11. Vielen Dank für Ihre Aufmerksamkeit

More Related