| Introduction | Features | History | Comparison | Java Conformance | Library | ACDK DMI | Framework | Method | Standard |
The most powerfull aspect in ACDK is its seemless interconnectivity to
many scripting languages and distributed component technologies.
COM, CORBA, .NET and Sun ONE has 3 approaches to integrate
applications.
- Common Object Model is used by Microsoft as standard
interface between communicating applications.
- CORBA defines a remote call interface sourounded
with a zoo of specification, how application should use this
call interface.
- JavaOne is a specification build on top of language Java and JavaEnterprise
Beans.
- .NET from Microsoft specifies a new runtime environment, class library
and Language (C#).
With scripting the barrier between the developer and
the customer/user of a application becomes lower.
Connected to the metainfo of a class ACDK can bind scripting languages,
to distributed components.
DMI Server implements the server part of the DMI communication.
ACDK, COM, CORBA and Java classes/interfaces are DMI servers.
DMI Clients can instantiate and use DMI Servers without any further
interface clue code. DMI Clients in ACDK are ACDK itself, COM and CORBA
clients, Perl, Lisp, Python, Tcl, and through COM also VisualBasic,
C#, VBScript, JScript.
Each DMI Client and DMI Server can be communicate with each other.
Because ACDK DMI is chainable, you can use ACDK as
middleware to connect a DMI client (for example scripting language)
with a DMI server (for Example a COM Object) which originally have
no connection.
Following an example with python as client and COM as server.
import acdk
classloader = acdk.Object("acdk/lang/ClassLoader")
classloader.findClass("acdkx/com/ComObject")
word = acdk.invoke_static("acdkx/com/ComObject", "New", "Word.Application")
word.poke("Visible", 1)
doc = word.peek("Documents").Add()
sel = word.peek("ActiveWindow").peek("Selection")
sel.TypeText("This is ")
sel.peek("Font").poke("Bold", 1)
sel.TypeText("ACDK")
sel.peek("Font").poke("Bold", 0)
sel.TypeText(" instrumenting Word through acdk_python")
acdk.invoke_static("acdk/lang/Thread", "sleep", 3000)
word.Quit(0)
|
With the DMI client API for Python it creates a Object
"acdkx/com/ComObject". This object works as a proxy to
the underlying COM application (here Microsoft Word).
From the python view point the object is a native
ACDK object, and all methods and member can be used
without further indirection.
|