Menu

Tree [67e128] master /
 History

HTTPS access


File Date Author Commit
 common 2013-03-03 Mark H. Wood Mark H. Wood [b11f49] POM tidies, better use of distributionManagemen...
 idl 2013-03-03 Mark H. Wood Mark H. Wood [b11f49] POM tidies, better use of distributionManagemen...
 src 2012-07-01 Mark H. Wood Mark H. Wood [20bdd7] Load the project into a repository
 trader 2013-10-20 Mark H. Wood Mark H. Wood [67e128] Stop providing explicit defaults for initial se...
 typeRepos 2013-10-20 Mark H. Wood Mark H. Wood [67e128] Stop providing explicit defaults for initial se...
 .gitignore 2013-10-20 Mark H. Wood Mark H. Wood [9e6ab6] More of don't broadcast TODO list
 COPYING 2012-07-01 Mark H. Wood Mark H. Wood [20bdd7] Load the project into a repository
 README 2012-07-01 Mark H. Wood Mark H. Wood [20bdd7] Load the project into a repository
 pom.xml 2013-03-03 Mark H. Wood Mark H. Wood [b11f49] POM tidies, better use of distributionManagemen...
 todo 2013-10-20 Mark H. Wood Mark H. Wood [d527e8] Don't broadcast my TODO list

Read Me

FreeTrade:  an implementation of the CORBA Trading Service


What's a Trading Service?  If you were looking for this, you know.  If 
you just found it and are curious:  the Trading Service is a service for 
locating other services by type.  A server can place advertisements with
the Trading Service ("exporting services") and clients can ask for lists
of services which meet their needs ("importing services").  Services are 
known by abstract type names and lists of properties, not by address or 
hostname or suchlike, so many services of the same type may be exported 
by servers all over your network and distinguished by their property 
lists.  If, now, you're *really* curious, then go to the OMG.Org site 
and read the specification, or find a good book on CORBA.  (Oh, yeah, 
CORBA is the Common Object Request Broker Architecture, developed by 
members of the Object Management Group:  www.omg.org.)


You need:

o  a Java Runtime Environment.  FreeTrade was developed using Sun's Java 
   1.6 JDK.  The JRE's own IDL compiler and ORB were used.

o  a relational database and its JDBC driver.  FreeTrade was developed 
   using PostgreSQL, but I've attempted to hew to the SQL standard and 
   avoid proprietary extensions.

o  various packages as shown in the file pom.xml (a Maven Project Object 
   Model description).  See the <dependencyManagement> element.  FIXME
   generate this list from the POM.

   In particular, you will need to select a logging backend which is 
   compatible with SLF4j.  FreeTrade was developed using Logback.


You must:

o  start the server.  The Java native ORB is bound into each server; 
   there is nothing hanging around waiting to start services on 
   demand.  The Java documentation does not make that abundantly clear.

   You could use a CORBA Implementation Repository to start the server 
   on demand, if you have one.

o  start the type repository.  The Trading Service depends on this 
   separate service for service type definitions.  You must also tell 
   the Trading Service how to find the Type Repository.  As usual CORBA
   gives lots of options and little guidance.  This Type Repository can 
   register itself in a Naming Service directory, and/or emit a 
   stringified IOR for use in scripts or what-have-you.  There's no 
   well-known Initial Reference name for the Type Repository, but this 
   Trading Service can be told to read a repository IOR from a file or 
   fetch it by name from a directory or use a statically configured IOR
   (perhaps pointing to an Implementation Repository).

o  configure ORBs.  Any client must have its ORB configured with an 
   initial reference to the service.  FreeTrade can emit a stringified 
   IOR when it starts, which should be just what you need.  Consult your
   ORBs' documentation for details specific to your environment(s).



Securing the service:  FIXME it will be secure when I get around to it.  
For now, any program which can contact the service can export, import, 
and configure at will.  Firewalls are your friends.  You Have Been 
Warned.



Why does FreeTrade exist?  I needed a Trading Service, and there wasn't 
one packed with the free ORBs I was using, so I had to write one, didn't 
I?  I like to do a good job and make things that are generally useful, 
but FreeTrade's raison d'etre is to support things I wanted to write 
which needed a Trading Service.  If you find it useful too, I'm 
pleased; if you don't, I'm sorry but not obligated.  If you tell me how 
it could be better, I may take your advice, with thanks.



How can you use FreeTrade legally?  FreeTrade is offered to you under
the terms of the GNU General Public License, a copy of which is 
enclosed as the file COPYING.  Please read the license thoughtfully:
your rights under it are broad but definitely limited, and you have no 
other source of rights to my code.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.