I have built an application in OSGi which offers a REST API for reading values from different data sources. Then I have several modules installed in my application exposing those data sources. For example one module exposes readings from a database, another exposes from a website, another reads from a TCP/IP device, etc...
For example, if I do this: http://--------/listAllDataSources
I would get something like this if I had 3 modules installed:
dataSources : [ 0, 1, 2 ]
Then if I do this: http://--------/read/1
I would get a reading from the data source number 1.
currentValue : "44.5"
So my architecture consists of:
[ External Apps]
[ REST API ]
Is this considered a SOA?
Also, I do not use any service broker as you can see. Does this makes my app not a SOA?
Best How To :
I think you're mixing concepts here, PedroD. You can read in detail what the term SOA refers to here. (I'm intentionally not linking to the Wikipedia article, which is absolutely terrible and misleading).
Your application is built to expose functionality, so it can be said that it can be a part of SOA but it is not a SOA by itself.
SOA refers to an architectural style that supports service orientation. It helps an organisation integrate and develop its systems in a service oriented way. SOA is a paradigm much broader than what you have and it greatly exceeds the context of a single application - e.g. it establishes internal enterprise guidelines, governance processes, building of service inventories across multiple business domains and orchestration of services in order to enable the organisation to implement business processes very fast, thus reducing time to market.
Of course SOA has levels of evolution. You may not still have processes in place or you may not use a messaging broker, and it can be said you're still working towards a fully service-oriented architecture. But in order to achieve SOA you must have at the very minimum have some kind of middleware tier, so you can avoid point-to-point integration and do at least simple service compositions.
I'd say that your appliation is built with integration in mind, with service orientation in mind, but it is not SOA by itself.
Note: If you want to internally organise your application in a style that borrows many concepts from SOA you might want to check out Microservice Architecture. Actually to me, your architecture seems more similar to Microservices.