|
Enterprise Application Development
This page contrasts enterprise level applications architectures offered by Microsoft and Java Enterprise Edition.
A Detailed Comparison of CORBA, DCOM and Java/RMI by Gopalan Suresh Raj takes an in-depth look at these technologies and provides specific code examples for each.
| Topics this page:
|
|
To call COM from .NET: To expose .NET components to COM (unmanaged code): Universal Data Access (UDA) was Microsoft's ambitious vision that "Any client should be able to use data regardless of where and how it is stored. Conversely, any computer that stores data should be capable of sharing that data with any client." The technical term for this is "heterogeneous data access." To obtain information from a database on a server, programmers need to first connect to a data source on a server, then specify parameters to issue commands for retrieving a recordset containing fields . The (Microsoft® Data Access Components) MDAC SDK provides the infrastructure to implement Microsoft's COM (Component Object Model) architecture of components. ODBC 1.5x first appeared December 1997. MDAC 2.0 was released in July '98 with the introduction of Visual Studio 6. MDAC 3.5 arrived April, 1993. Microsoft (Open DataBase Connectivity) ODBC Driver Manager library (odbc32.dll) manages communication between applications and ODBC drivers. ODBC drivers are available for every major DBMS in use today, including non-Microsoft database products such as Oracle and Sybase as well as for Microsoft's SQL Server, FoxPro®, and Access. Data Access Objects (DAO) provide native COM interfaces (object models) to Microsoft's JET (Joint Engine Technology) database engine shipped with Access and Visual Basic. Jet is really a series of .DLL files that manage data access. JET is based on the Index Sequential Access Method (ISAM) which works with simple flat structured indexes.
Perl 5 programmers use the Database Independent Interface (DBI) module. Remote Data Objects (RDO) provides a COM interface overlay to ODBC API since the Enterprise Edition of Visual Basic 5.0. DAO and RDO were phased out by Microsoft. DAO allows databases to be encrpyted using DES. Using DAO and Jet you can create groups of users that have various priviliges. You can set passwords as well. I have developed financial apps using DAO and Jet that have multi-tiered security profiles. [Thus,] some users could do things that others could not. These capabilities are built-in to DAO/Jet. ADO is a generalized approach to many data stores. |   |
|
Much Ado About Databases:
This infrastructure gives programmers several ways to interact with databases:
|
|
Connection Strings
The developer then adds a data aware control to the form and sets the DataSource property to be the data control. The DataField property of the data aware control is then set, from a list of the fields that are included in the RecordSource, to be the information that is to be displayed in that bound control. With VB 6.0, the Data Form Wizard only works with ADO objects. The command type adCmdText allows the developer to enter an SQL command to identify the information that is to be made available from the data control. This SQL command is very flexible in allowing us to specify the data that we want to manage. The command type adCmdTable allows the developer to name the table in the data source that will be made available from the data control. When this option is selected all of the records and all of the field in each record will be available through the data control.
|
Remote Method Invocation - Remote Object Calls
|
CORBA
|
|
How CORBA Works | JDK 1.2 IDL Take the Brainbench certification test on CORBA 2.3 and CORBA 2.3 Java
|
Microsoft's COM - Component Object Model architecture
|
|
LoadRunner COM ScriptHere is a sample script generated by VuGen against a login to the sample COM flight application:Action() { { int int_var1 = lrc_int("100A"); int int_var2 = lrc_int("A100"); lr_output_message("int 100A=%d, A100=%d", int_var1, int_var2); } { uhyper uhyper_var1 = lrc_uhyper("650000"); } { // Create a BSTR which may include nulls: BSTR bstr0 = lrc_BSTR1("abc\x00def\x00\x00ghi", 12); // Create a BSTR which does not include nulls: BSTR bstr1 = lrc_BSTR("abc\x00def\x00\x00ghi"); BSTR bstr2 = lrc_get_bstr_sub(bstr1, 7); lrc_print_bstr(bstr0); /* prints "abc\x00def\x00\x00ghi" with nulls */ lr_output_message("BSTR Length=%d, First 7=%s (cut off by terminator)", lrc_get_bstr_length(bstr0), lrc_get_bstr_sub(bstr0, 7)); } { // Convert ASCII string "true" into a Boolean variant: VARIANT_BOOL true_var = lrc_bool("true"); VARIANT_BOOL false_var = lrc_bool("false"); // Create an empty variant: VARIANT empty_var = lrc_variant_empty(); VARIANT null_var = lrc_variant_null(); // Create a new variant containing an existing variant: VARIANT var0 = lrc_variant_short("53"); VARIANT var1 = lrc_variant_variant_by_ref(&var0); VARIANT var2 = lrc_variant_BSTR("HELLO"); // Retrieve the GUID of the Istudent interface named object // VuGen to retrieve identifiers needed for retrieving interface identifiers and PROGIDs of COM objects to be used in COM communications: GUID pClsid = lrc_GUID("student.student.1"); // Fill a byte array with strings of characters: ByteArray var; var = Create3DByteArray(0, 2, 0, 3, 0, 4); Fill3DByteArray(var, 0, 0, "abcd", 4); Fill3DByteArray(var, 0, 1, "efgh", 4); Fill3DByteArray(var, 0, 2, "ijkl", 4); Fill3DByteArray(var, 1, 0, "mnop", 4); Fill3DByteArray(var, 1, 1, "qrst", 4); Fill3DByteArray(var, 1, 2, "uvwx", 4); // Save variant: lrc_save_VARIANT("pvar0",var0); lrc_save_VARIANT("pvar1",var1); lrc_print_variant(var2); // Example: Variant of type: BSTR ,with value: HELLO } return 0; }
|
Microsoft COM+ Performance Counters by LoadRunner
If you want to display more than 20 of these counters, see Mercury problem ID 26871 to change the ini file.
|
Related:
| Your first name: Your family name: Your location (city, country): Your Email address: |
Top of Page
Thank you! |