Hi Kevin,
Sorry for not getting back to you sooner.
I think you're thinking on the right lines but I would just like to turn your statement about the licenses around!
Licenses can be applied to any element in the ontology. However, that means that to apply a license to specific 'part' of an element then you need to define those parts individually. e.g. as you say, if the licensing of a packaged application is managed at the 'module' level, then we need to define each of the modules individually. So, in the end, it's a question of granularity. Because we are building an ontology / knowledge base about our enterprise, we need to be explicit and clear about the elements in the enterprise. Whenever you find yourself trying relate something (e.g. a license) to
part of something else (e.g. an Application Provider), then we need to go into more detail about that Application Provider to explicitly capture which parts. Any "it's sort of like this" is not going to work. And this is true across all of the elements of the meta model.
Back to your scenario.
If a module is used by one country but the same functionality comes from a different application provider in another country, that's 2 Application Providers that are required. The Technology Component Architectures (and the implementing Technology Product Builds)
could be the same but, if the Application Providers are different (e.g. Oracle ERP in US, SAP mySAP ERP in Germany) then it's likely that the underlying Technology will be different.
In a packaged application scenario, in particular, the Application Providers represent specific configurations of the package. We represent the package itself as a Technology Product but our implementation of, e.g. SAP, is an Application Provider. If those Application Providers have the same behaviour - let's say that we have a standard configuration for SAP across the organisation - then we have 1 Application Provider for this. We then use the Application Deployments to define the US instance, the Germany instance of the same Application Provider.
But, if the Applications are based on different packages (e.g. Oracle and SAP), then even though the functionality might be considered the same, as you say, they are NOT the same because they have different technology platforms (1 is Oracle ERP, the other SAP).
So, there are number of different ways to capture this depending on the specifics of the scenario in terms of design of the application, deployments of it, the technology platforms etc.
Remember that Logical view is about design. Physical is about deployment of those designs.
Specifically on the scenario you describe - and hopefully the Essential Meta Model terms will help us get to the crux of this! - my interpretation of how you should model this to get the right results in the Views is:
Create:
- Application Providers for AP-ERP, AR-ERP, GL-ERP. Each of these depends on a Technology Composite that is linked to a Technology Product Build that includes your ERP Technology Product. This Technology Composite could just have a 'Packaged Application' Component.
- Application Providers AP-APP2, GL-APP2. Each of these depends on a Technology Composite that is linked to a Technology Product Build that includes your APP2 Technology Product, as above.
- You could then create an Application instance to group AP-ERP, AR-ERP and GL-ERP and call it something like 'ERP Application'. This helps people to find these components. I'm going to park composite applications for now, although a possible alternative approach.
- Now we can apply licenses to each of the individual Application Providers - 5 x licenses.
Now, when you view the Application Summary for any of these Application Providers, you'll only see the relevant technology for that Application Provider.
OK, so you'll have noticed that I haven't mentioned anything about the use of these Application Modules by the 2 Companies A and B. Again, going back to one of the first points I made, we need to be explicit about how these companies use the applications. We do this by defining Physical Business Processes. These can be really coarse-grain if we don't know much about the details, by the way, but it's with a Physical Business Process (which defines which part of the organisation - each Company in the 'Group' is captured as a Group Actor - is playing a role to perform a Process). Again, we can be coarse grain about this, so we could just define processes that describe the super set of all the finance processes and relate that to GL.
From this, we'll see that when Company B does these processes, they use 2 Application Providers - GL-ERP and GL-APP - in the Views. This might be fine but the Views will make this clear when we look at how the Processes are supported by Applications.
I've taken a bit of different tack here to look at how we relate the Physical Business elements to the Applications - which tells us who is using what Application to support them in specific processes. I appreciate that your focus might be on the technology, so let's get back to that - but one last word on this. To understand whether an Application is shared or whether there are different copies/variations of the same logical application we need to include some physical business elements.
In the approach I mentioned above, I defined 2 Technology Product Builds - 1 for each of the technology platforms of the packaged applications that the Companies are using. Each of these builds will include the Technology Product for the packaged application itself (effectively the contents of the DVD you buy from the software vendor), along with the other infrastructure software such as Relational Databases, servers, OS etc. However much detail that you require.
From what you've described, I'm going to assume that there are production deployments of AP-ERP, AR-ERP, GL-ERP that are used by Country A and Country B (for the GL). We'll also define deployments of AP-APP and GL-APP that are used by Country B.
The AP-ERP, AR-ERP and GL-ERP deployments can be related to the Technology Product Build for ERP that we've already defined. Similarly the AP-APP and GL-APP deployments.
To describe how these components are actually installed on the physical infrastructure from each deployment, we define instances that are installed on specific nodes. With each of these instances, we can define the specific physical relationships between this and other instances. e.g. that the application instance depends on DB1 but not DB2.
When we create the instances of GL-ERP we can ensure that there's just one that is shared between Country A and Country B OR we can create different instances deployed to Country A's servers and Country B's servers.
I think one of the tricky bits here is whether you separate the modules of ERP Provider into (sub) Application Providers or represent them as Software Components. I think the thing to remember here is that it's the Application Providers that support specific parts of the business, not the software components. However, from a licensing perspective, we might need to define the license elements at the software component level. It all depends on how your organisation works.
Hope this helps and doesn't just add confusion!
Jonathan