DCOM CORBA - TU Ilmenau

theoinf.tu.ilmenau.de

DCOM CORBA - TU Ilmenau

TU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 4


NT-Service⇒ D:\libservice -serviceTU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 5


Middleware... off-the-shelf connectivity software whichsupports distributed processing at run-timeand which is used by developers to builddistributed software ...OVUM 1995... software that allows elements ofapplications to interoperate across networklinks, despite differences in underlyingnetwork protocols, system architectures,operating systems, databases and otherapplication services... BYTE, April 1996, p.68TU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 6


Object Management ArchitectureApplicationObjectsDomainInterfacesCommonFacilitiesObject Request BrokerObjectServicesTU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 7


Object ServicesNamingEventLife CyclePersistent ObjectTransactionConcurrency ControlRelationshipExternalizationQueryLicensingPropertyTimeSecurityObject TraderObject CollectionsTU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 8


Common FacilitiesVerticalHorizontalImageryUser InterfaceInformation MgmtSystem MgmtInformation SuperhighwaysRenderingInformation ModelingManagement ToolsManufacturingCompound PresentationStorage & RetrievalCollection MgmtDistributed SimulationUser SupportCompound InterchangeControlOil & Gas IndustryAccountingDesktopScriptingData InterchangeInformation ExchangeTask MgmtApplication DevelopmentMappingEncoding & Represent.Time OperationsWorkflowAgentRule MgmtAutomationTU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 9


CORBA ArchitekturInterface RepositoryIDL CompilerImplementation RepositoryClientObjRefin argsOperation()out args + retValObject (Servant)DynamicInvocationIDLStubORBInterfaceIDLSkeletonDynamicSkeletonObjectAdapterGIOP / IIOPORB CoreTU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 10


Das Buchbeispiel 1interface Book{void reset();void add_entry( in string line );readonly attribute string text;void destroy();};IDL#include "odf_output/Book.hh"main( int argc, char* argv[] ) {ODF::init( argv[0] );ODF_ObjRef book;ODF_ObjRef producer;Implementationinterface BookFactory{Book create_book( in string name,in string firstLine );};implementation BookImpl:Book{creator new_Book( char* name,char* firstLine );};implementation BookFactImpl:BookFactory{creator new_BookFactory();service = "BookFactory";};}if( !strcmp( argv[1], "create" ) ) {ODF_find( producer, "BookFactory" );book = producer->create_book( argv[2], argv[2] );}else if( !strcmp( argv[1], "add" ) ) {ODF_find( book, argv[2] );book->add_entry( argv[3] );}else if( !strcmp( argv[1], "get" ) ) {ODF_find( book, argv[2] );//CORBA::String output = book->text();char* output = book->text();cout destroy();}TU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 11


Das Buchbeispiel 2%> Book destroymy_book%> Book createmy_book1%> Book createmy_book2%> Book add my_book1"Hello World1!"%> Book add my_book2"Goodbye World!"%> Book get my_book1my_book1Hello World1!%> Book get my_book2my_book2Goodbye World!TU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 12


CORBA vs. DCOM vs. RMICORBADCOMRMIStandard• offen• Industriekonsortium(700 Mitglieder)• Microsoft• Weitergabe anOpenGroup• binärer Standard• Java (SUN)IDL SchnittstellePlattform• Windows, Unix (ca. 30) • Windows• Unix (Software AG)• auf jeder Java-VMSprache• C, C++, Smalltalk,Ada95, Cobol, Java,Eiffel, Objective-C• C, C++, Fortran, VB,Java, Cobol, Perl, REXXsowie weitereScriptsprachen•Java•Visual Age for SmalltalkTU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 14


CORBA vs. DCOM vs. RMICORBADCOMRMIEntwicklungswerkzeuge• UnterschiedlicheWerkzeuge• Volle Integration inMS DeveloperStudio• PowerBuilder,...• UnterschiedlicheEntwicklungsumgebungenVerbreitung• Hauptsächlich unterUNIX• Hauptsächlich unterWindows• Auf beiden PlattformenNetzwerk• TCP-IIOP• proprietär• MS-RPC (→DCE-RPC)• (IPX, SPX, HTTP)• JavaSockets / TCP• (IIOP)TU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 15


CORBA vs. DCOM vs. RMICORBADCOMRMINachrichten• CORBA 2.0, synchron• Einige ORBs asynchron• Synchron• Asynchron durchMMSQ• Synchron JMS API• Asynchron durchDrittanbieterMiddlewareDienste• 15 Services ORBspezifisch• Naming, Lifecycle,Concurrency, Security,Transaction• Durch EJB Naming,Lifecycle, StateManagement, Security,Transaction, PersistenceTransaktionen• Object TransactionService• Auch zw. versch. ORBs• MS Transaction Service• Auf anderen BS nurrudimentäre Unterstützung• Java Transaction Service(nur empfohlen!)TU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 16


CORBA vs. DCOM vs. RMICORBADCOMRMISicherheit• Umfangreich spezifiziert• ORB spezifisch• Umfangreich• BS Sicherheit ist mitintegriert• EJB nutzt und erweitertdas Java-SicherheitsmodellNaming• Corba Naming Service • Active Directory Service(noch über Registry!)• Java Naming andDirectory Service (JNDS)Fehlertoleranz• In Spez. nicht vorhanden• ProprietäreUnterstützung in ORBs• rudimentäre Unterstützung• Nicht vorhandenTU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 17


PerformanzUniv. Southern California, Nenad Medvidovichttp://sunset.usc.edu/classes/cs578_2002/TU-Ilmenau, Softwaresysteme/Prozessinformatik, KBSEKomponentenmodelle II 18

More magazines by this user
Similar magazines