If you're using spring, we wrap the datasource in a TransactionAwareDatasourceProxy (if not already of that instance) to make sure Activiti used the same transaction. If you use the same transactionManager instance for all of your apps (see platformTransactionManger property on SpringProcessEngineCOnfiguration), this will work without a problem, using only ONE transaction. This only works, of course, if you're in the same spring-context.
Not really sure if your apps reference each other - eg. a transactional service is called from within the execution of a service-task. If so, and the Datasource is the same JTA won't be more usefull as just using the same "PlatformTransactionManager", as no datasources need to be synchronised. If the apps do NOT reference each other, there is no need for a single transactiobn-manager, as the transactions will never be mixed work from multiple apps.