Application service available only via selected network(s)

Started by KarstenB, February 25, 2019, 06:45:36 AM

Previous topic - Next topic

KarstenB

Hi,

I am trying to model a case, where a specific application service is available only via a specific physical network.

Right now my model shows the service exposed via an application interface (API) assigned to an application component and realized by a technology interface (communication protocol).

One idea could be to to simply include the network constrained as part of the naming of the application interface (API) such as "API via specific physical network". However, this means I cannot query the model with something like: "Get list of application interfaces available via specific physical network".

Another idea could be to assign a technology device to the application component and have the technology interface aggregated by a communication network. However, that only shows that the device (and by that the application component) is connected to that specific network and not whether the interface is available via that network.

My goal is to be able to model the network constraint as part of the architecture structure.

What could be a good way to model this?

Jean-Baptiste Sarrodie

Hi,

That's an interesting question.

Quote
Right now my model shows the service exposed via an application interface (API) assigned to an application component and realized by a technology interface (communication protocol).

I suppose you mean that your application component is composed of your application interface (assignment is not allowed from AppInt to AppCmp). FWIW, realization from TechInt to AppInt is not meant for that: it is there to model the case where the application does not really exist because it is fully realized at technology level. For example you might want to model your BigData as an application component because it serves several business oriented use-cases, but part of it are really nothing more than bare technology like Data Ingestion being provided by (e.g.) Kafka (which is a system software). This ends up to "Kafka's Interface" realizes "BigData Data INgestion Interface".

Quote
One idea could be to to simply include the network constrained as part of the naming of the application interface (API) such as "API via specific physical network". However, this means I cannot query the model with something like: "Get list of application interfaces available via specific physical network".

Using the name does not allow it but you could use a property which then becomes usable in a query.

Quote
Another idea could be to assign a technology device to the application component and have the technology interface aggregated by a communication network. However, that only shows that the device (and by that the application component) is connected to that specific network and not whether the interface is available via that network.

A technology device (in fact, just "Device") can't be assigned to an Application Component.

Depending on your exact need, I would suggest the following options:

  • Use some property
  • Use a Constraint and have it realized by your Application Interface
  • Use a Serving from your Communication Network to your Application Interface. This is a derived relationship expressing that some of the (network) Devices which compose the Communication Network are providing some (Technology) Services to the Application Interface. This is not perfect but seems to be a good approximation and can be used for automated analysis.

Regards,

JB
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.

KarstenB


Hi,

Thanks so much.
I have a few questions.

Quote from: Jean-Baptiste Sarrodie on February 25, 2019, 19:27:18 PM
Quote
Right now my model shows the service exposed via an application interface (API) assigned to an application component and realized by a technology interface (communication protocol).

I suppose you mean that your application component is composed of your application interface (assignment is not allowed from AppInt to AppCmp). FWIW, realization from TechInt to AppInt is not meant for that: it is there to model the case where the application does not really exist because it is fully realized at technology level. For example you might want to model your BigData as an application component because it serves several business oriented use-cases, but part of it are really nothing more than bare technology like Data Ingestion being provided by (e.g.) Kafka (which is a system software). This ends up to "Kafka's Interface" realizes "BigData Data INgestion Interface".

Yes you are right. The application component is composed of the application interface.
In your example with Kafka ... What if the system software was something you yourself implemented? Would you then use the technology interface to expose the functionality?
In the specific case (ignoring Archimate language for a moment) there is a technical interface which supports different application level functionalities. The application level functionality is implemented by several components, but exposed using different technical interface types. On the business level a service is provided, which is then realized differently through the layers depending on the available technical interfaces.

Quote from: Jean-Baptiste Sarrodie on February 25, 2019, 19:27:18 PM
Quote
Another idea could be to assign a technology device to the application component and have the technology interface aggregated by a communication network. However, that only shows that the device (and by that the application component) is connected to that specific network and not whether the interface is available via that network.

A technology device (in fact, just "Device") can't be assigned to an Application Component.

I am struggling a bit with derived relationships. I think the device should instead realize the application component.

Quote from: Jean-Baptiste Sarrodie on February 25, 2019, 19:27:18 PM
Depending on your exact need, I would suggest the following options:

  • Use some property
  • Use a Constraint and have it realized by your Application Interface
  • Use a Serving from your Communication Network to your Application Interface. This is a derived relationship expressing that some of the (network) Devices which compose the Communication Network are providing some (Technology) Services to the Application Interface. This is not perfect but seems to be a good approximation and can be used for automated analysis.

Again struggling with derived relations... If I understand your last proposal correctly, then some device (which could be another node or device) part of the network is providing the functionality?

Jean-Baptiste Sarrodie

Hi,

Quote
In your example with Kafka ... What if the system software was something you yourself implemented? Would you then use the technology interface to expose the functionality?
In the specific case (ignoring Archimate language for a moment) there is a technical interface which supports different application level functionalities. The application level functionality is implemented by several components, but exposed using different technical interface types. On the business level a service is provided, which is then realized differently through the layers depending on the available technical interfaces.

The fact that the system software has been implemented or sourced doesn't change anything. If the application is simply a "mashup" of technology then its interfaces are realized by underlying technology interface. But remember that a system software doesn't contain business logic, so if you implement it yourself there are chances that you'll add some business logic, turning it to an application component.

Quote
I am struggling a bit with derived relationships. I think the device should instead realize the application component.

That's good because in ArchiMate, a Device realizes an Application Component (this is derived through Device assignedto Artifact realizes AppCmp).

Quote
Again struggling with derived relations... If I understand your last proposal correctly, then some device (which could be another node or device) part of the network is providing the functionality?

Some (network) device is not providing the functionality but support the interface (which means that without the network the interface can't be used). That's really what happens here: if you remove some network equipments that are needed for your network, then the application interface is no more accessible.

Regards,

JB
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.

KarstenB

Quote from: Jean-Baptiste Sarrodie on February 26, 2019, 07:14:37 AM
Some (network) device is not providing the functionality but support the interface (which means that without the network the interface can't be used). That's really what happens here: if you remove some network equipments that are needed for your network, then the application interface is no more accessible.

Ah, ok.
Thanks for all the explanations.