INGENIAS Development Kit
The INGENIAS Development Kit or IDK intends to facilitate the development of MAS by supporting the INGENIAS Development Process (IDP). This process was created to help developers to use agent concepts in the context of a system development following engineering practices. As a result, this process proposes a set of deliverables, activities, and guidelines about how these activities could be organized. The IDP is supported by tools that implement notation and implementation techniques described in the original work of INGENIAS. We name these tools the INGENIAS Development Kit (IDK), and that is what this distribution is giving to you. To know more about the IDK, please, read the following sections: - The metamodel of the IDK. INGENIAS defines a meta-model for determining what is an agent and what is a MAS. This meta-model is public and can be accesed at INGENIAS METAMODEL V1.0. The figure shows an example of the agent meta-model that INGENIAS apply. There are other parts of the INGENIAS meta-model that describe other aspects, as well. We recommend visiting the metamodel web site and surf a little through INGENIAS concepts. Readers will find explanations of what each symbol means and recommendations abot their use. Download: https://ingenias.svn.sourceforge.net/svnroot/ingenias/trunk/metamodel/metamodelGOPRRlike.xml
- Software, stable release, version 2.8: these releases have been sufficiently tested and are not expected to fail.
- The visual editor. It is used to produce visual specifications of a MAS according to the IDK meta-model. It hosts different modules capable of processing the specification to produce code, documentation, or maintenance. Download version 2.8 (aprox. 60MB): Linux, MacOS, Windows
- Manual for using the visual editor v.2.8
- INGENIAS Agent Framework. It is a module included in the visual editor. It translates a MAS specification into an executable MAS. To succesfully produce a MAS using this module, certain information has to exist in the specification. For an account of the possibilities and requirements of this module, consult the IAF Development Guide.
- Development releases, version 3.0: these releases are generated as soon there is some change in the repository of sources. Therefore, it includes the latest additions to the IDK. Check out these snapshots from our hudson continuos integration system. In our hudson, among different snapshots, readers will find these are the most relevant:
- Releases ingenias-all-XXX.zip. These releases include a complete editor with all existing modules. The install procedure requires to unzip the file and making sure ant and jdk are properly installed and configured. Download here the latest operative version.
- Releases ingenias-installer-XXXX.jar. These are installers encapsulated into jar files. To properly execute them, it is mandatory to have JDK 1.6 (or higher) installed. The installer creates shortcuts to the editor in the desktop and in the menu of your desktop manager. Each install include pdfs of the IAF development guide and the manual of the visual editor. Download here the latest operative version.
Demo This video was created for the AAMAS'08 demo session, where the IDK obtained the best demo award. The player will replace this paragraph TroubleshootingThere are some common problems arose during the years. To save your time, consult the following before contacting us. If your problem is not listed here, you can open a bug - I have compiled modules and suddenly the IDE has thrown a CLASSNOTFOUND exception. Please, check that your module has all the files it requires. Your module can use only files from its deployment .jar or from the classpath. If you launched the Editor with java -jar lib/ingeniaseditor.jar, then the problem is that using "java -jar" blocks any acces outside the referred jar, so extra libraries cannot be found. Please, install ANT and run "ant runide" from the distribution folder. As an alternative, include all jars in the lib folder into your classpath and run java ingenias.editor.IDE
- I start the Editor, it shows a CLASSNOTFOUND exception, and then it shuts down. There are modules in your ext folder that require extra libraries. If you launched the Editor with java -jar lib/ingeniaseditor.jar, then the problem is that using "java -jar" blocks any acces outside the referred jar, so extra libraries cannot be found. Please, install ANT and run "ant runide" from the distribution folder. As an alternative, include all jars in the lib folder into your classpath and run java ingenias.editor.IDE
- The Editor throws an IllegalArgumentException. Please, review your module and check that you define two constructors: an empty contructor (without parameters) and another that considers one parameter of type String. Check the BasicToolImp.java and BasicCodeGeneratorImp.java to see the detailed form of constructors
- My module properties do not appear in the Editor on selecting Project->Properties. Check that you have implemented the method defaultProperties in your module. That method defines all the properties your module may need.
- The Editor does not update a module's code. In principle, the Editor will reload any new jar file allocated in the ext folder. In any case, this feature fails some times. First, check other troubles in this section and if they don't solve your problem, I would recommend you just to shut down the Editor and then restart it.
- I get a "invalid LOC Header". This happens when the Editor starts reading a jar file meanwhile the jar utility is generating it. To avoid this, please, first generate the jar file somewhere else, and then copy it to the ext folder. Please, check the script for creating jar files in the howto section. After an error like this, you should start again the Editor
- The ext folder shows a lot of libraries with the _ symbol preceding. This is due the unstability of the dynamic loading procedure. The Editor uses URLClassLoader instances to load files from jar files. On accessing these files, the JVM locks them and windows claims that they are being used. This is a problem if you intend to provide newer jar files with updated classes. To solve it, current versions renames jar files before loading them. Also, before closing the Editor, it proceeds to remove extra jar files, keeping only last version and removing underscore symbols.
- My module seems to do always the same even if I change it and redeploy it. Please, check that you have not compiled having as output file one of the folders contained in your classpath. Dynamic update of classes works only if you dont generate a module's .class files inside any existing classpath folder.
- I get a ERROR:Not well formed. A template used by your code generator is not correct. Please run it through a XML parser to check that it is XML compliant. If you used the @ format where < and > symbols are replace with @, you can run java ingenias.generator.util.Conversor -at2 [your template]. This will generate through standard output a normalized version of your file.
- I get a ERROR:(class: ingenias/generator/interpreter/Codegen, method: obtainTemplateData signature: (Ljava/lang/String;)Ljava/util/Vector;) Incompatible object argument for function call. To solve this, just recompile your module again.
- I get a File Tag Empty exception. Please check that you have written a valid file path in the template between file tags. In case you have, check that every variable referred in this tag is defined in your code generator.
- I get a ERROR:templates/XXXXXX was not found in the classpath or current jar. Run a jar -tf ext/mydeploymentjarfile.jar and check that the template appears exactly in the folder that has pointed the error, in this case templates folder. In case it is where it should be, please, check in your classpath that your code generator binaries (.class files) do not appear in any folder belonging to your classpath. These binaries should be present only in your deployment jar.
- I get a ERROR:class XXXXXX not found . Run a jar -tf ext/mydeploymentjarfile.jar and check that the class appears exactly where it should be: in the package structure that has pointed the error. In case it is where it should be, please, check in your classpath that your code generator binaries (.class files) do not appear in any folder belonging to your classpath. These binaries should be present only in your deployment jar.
- A module I have defined does not appear in the Editor after deploying it.
- Please, check that your module inherits from BasicToolImp or BasicCodeGeneratorImp or that it implements BasicTool or BasicCodeGenerator interfaces. If it does not inherit these classes or it does not implement these interfaces, the Editor will not recognise your module.
- Please, check that your module does not name as other modules. Module name is supposed to be unique unless you intend to replace some existing module. If two modules have the same name, the newest overwrites the oldest
Licensing The software that can download here is licensed under GNU's GPL v3. It is important that you know what is GPL v3and how it benefits you. This software has been developed by Dr. Jorge J. Gomez Sanz and Ruben Fuentes for the GRASIA research group (http://grasia.fdi.ucm.es) under the direction of Dr. Juan Pavon. Contributors The following students have contributed to the IDK: - Guillermo Jimenez (2003). He provided a modeling example for the Quake (TM) game
- Juan Antonio Recio (2004). He developed a module able to map SOAR architecture primitives into INGENIAS notation diagrams. To demonstrate the viability of the translation procedure, there is a demo that translates the Tank SOAR example into INGENIAS specification which is included in the IDK 2.3 distribution. This demo runs only with the SOAR software installes, as well as TCL/TK. More instructions can be found in the INGENIAS manual included in the distribution or downloaded independently.
- Carlos Celorrio (2004). Modified current existing JADE module so that it could work with JADE Leap and added the possibility of making the agents mobile. To test the module, he defined the cinema ticked sales scenario and a specialised module that translated the example into code. More instructions can be found in the INGENIAS manual included in the distribution or downloaded independently.
- Ivan García-Magariño (2006-). He is contributing with translation of INGENIAS metamodel to EMF, a plugin for the Eclipse development platform, and development examples for INGENIAS.
|