ACE+TAO Opensource Programming Notes
From Wikibooks, the open-content textbooks collection
| ← ACE+TAO Opensource Programming Notes/Cover | ACE+TAO Opensource Programming Notes | Create a server → |
Contents |
[edit] Abstract
This book addresses issues related to TAO development and integration.
First, a word or two about the nature of open source projects. The main benefit of an open source project is that you get a working product you can use, complete with community support. This support often takes the form of user's support as well as developer support. Ideally, these support avenues also include documentation. Should the open source project in question lack some of the pieces mentioned above, its utility as an open source product (particularly as the product becomes more complex) is necessarily diminished.
ACE+TAO is a wonderful product which compares well to other open source products like Orbit or Mico. It encompasses much of the current standard and comes complete with all the services you would expect (and some extras too). Unfortunately, except for the most basic services (the naming service) there are precious few documented programming examples in their tutorial. While there are several source files in the examples directory, these are sadly not written with documented code (often without even a header describing the use for the example), and certainly not included in any web page explaining their code or use.
Object Computing, Inc. freely provides the Getting Started chapter of their TAO Developer's Guide (that can be purchased for around $250.00). This chapter is complete with code examples and walks the user through the steps needed to make a simple TAO client and server. The open-source TAO 1.4a distribution contains all examples referenced in the TAO Developer's Guide, while the FAQ contains some helpful information for beginners and experts alike.
Remedy IT provides freely the TAO Programmers Guide. The standard version is available for free, the extended version will be sold in the near future using a subscription model.
Additionally, the comp.soft-sys.ace and comp.object.corba newsgroups are monitored by groups and individuals able to field questions related to both TAO and CORBA, and the TAO mailing lists are available for questions, discussion, and reporting bugs related to TAO.
The following sections should expand on the single example provided with ACE+TAO (the quoter example) with sections designed to help the user with the event service, the notification service, and other real-time issues. Those reading this page wishing to make contributions in explaining various pieces of the TAO project are encouraged to make contributions to this page.
[edit] Build Instructions
- http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/TAO/TAO-INSTALL.html
- http://www.theaceorb.com/faq/index.html#HowToBuildACEandTAOonWindows
The only caveat is that you want to be careful with the "traditional build under a UNIX environment. It treats the install target dir as a sandbox it owns, so if you have chosen /usr/local, like you would with a typical automake project, understand that if there is a problem with the build, the last thing the traditional build env will do is to delete its sandbox (/usr/local).
The newer versions of ACE+TAO, V5.6.7 (mini-release), in theory now support automake style builds. In fact, for the first time, you can do the "configure; make; make install" dance and it just works! There are some annoying problems that have yet to be cleared up. As of this version, the -ORBDaemon switch doesn't work to send the distributions daemons into the background.
On the other hand, if you like a no fuss option, Ken Sedgwick over at bonsai.com has provided pre-built RPMs. The binaries provided aren't of the debug variety, so they don't take up the shocking amount of space an installation of ACE+TAO build with -g can. The bummer seems to be that the number of compiled in features seems to be a little light. That being said, its certainly a good way to get started, and will handle 90% of your applications.
[edit] Core Development Operations
In this section, the basic tasks which should allow the user to create most CORBA enabled applications are described.
- Create a server
- Create a client
- Dealing with IIOP Endpoints
- Starting the basic services
- Advertise your service on a naming service
- Find a service on a naming server
- Attaching your applications to the core services
- Configuring your app to work with an Implementation Repository
- Create a process with both client and server
- Create an event supplier
- Create an event consumer
- Create a notifier supplier
- Create a notifier consumer
- Tying it all together
[edit] Services
The following sections describe the various services, their configuration, and, if not covered above, should include an example.
- Naming
- Event
- Real-Time Event
- Trading
- Time
- Notification
- A/V Streams
- Concurrency
- Life Cycle
- Load Balancing
- Logging
- Property
- Scheduling
- Security
- SSLIOP Pluggable Protocol
- FtRt Event
- Fault Tolerance
- IFR
- Portable Group
- Real-Time CoS Scheduling

