That is a common use case. AEM data located in the AEM JCR is essentially what you want to share with other apps in your network.
To do this, you can write a custom Sling Servlet that uses the JCR API/or AEM Query Builder API to retrieve AEM JCR Data. The other app can perform a GET request to your custom AEM Sling Servlet and AEM returns the data in a HTTP response. You can code the sling servlet to return JCR data to meet your business requirements. For example - you can return JSON, XML, files, etc,
Here is an example of a Java app posting a file to AEM via a custom Sling Servlet. You can perform a similar use case. Instead of a POST, perform a GET.
http://helpx.adobe.com/experience-manager/using/post_files.html
(in this example, the external app is a Java swing app performing the POST).
Here is another example of writing a custom Sling Servlet:
http://helpx.adobe.com/experience-manager/using/custom-sling-servlets.html