Relationship between Applications

Post Reply
wktsugue
Posts: 7
Joined: 30 May 2011, 21:19

How could I relate one Application to another Application?
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

There are two ways to relate applications.

The simplest and most common is to define the dependencies between applications using the Static Application Architecture of an Application Provider.

These dependencies are created using a graphical model (the static application architecture). To do this, go to your Application Provider instance, and create a new instance in the 'Defining Static Architecture' field of the form. A new dialog will pop up with the blank canvas for the graphical model.

Drag 'Application Provider' icons from the palette on the left onto the canvas. Double click on each one once it's on the canvas (or select and then push the spy-glass button) to open the definition for that icon and complete the fields to specify which Application Provider it is that we are using.

Keep dragging new icons onto the canvas for each of the Application Providers that you wish to relate. Then simply click on an application and drag a new relationship to the Application Provider that it depends on. Note that this is a dependency relationship, so if Application A receives data from Application B, we draw the dependency FROM Application A TO Application B.

And that's it. The Views that describe the Application dependencies query all the relevant Static Application Architectures to find all the dependencies. This means that you can focus on defining the dependencies that an Application has on other Applications in its Static Architecture rather than those Applications that depend on it. e.g. The Static Architecture of Application A can be captured to show just the relationship to Application B and in the static architecture of Application C, we can show that it depends on A.
The View will query all of these architectures and show that A depends on B and that C depends on A, even though the dependency between A and C is not defined in A's architecture.

By the way, the new Information and Data Pack includes new fields on the dependency to define the Information that is being exchanged on these dependencies.

I mentioned that there are 2 ways to relate Applications. I have described the most common and most important way - the Static Architecture. It is also possible to relate Applications from a dynamic perspective by defining the Dynamic Application Architecture of an Application Function. This is used to describe what happens when an Application Function is executed in terms of the dependencies that exist between Applications in the context of the execution of that Function.
This is a different perspective and describes the 'how' the applications relate to each other as they run, where as the static architecture describes the dependencies that exist. In practice, the dynamic architecture is more complex to model and for most cases this level of detail in the model is not required. However, I wanted to make sure that you were aware of this relationship.

I recommend that the static application architecture is what you should use to capture the application relationships

Hope this helps

Jonathan
Essential Project Team
wktsugue
Posts: 7
Joined: 30 May 2011, 21:19

Hi Jonathan,
Very thanks for your support.

I dive into ontology/Protege and I discovered that I could create relationships between classes and instances by using slot facets, and furthermore I can use inverse slots to create bidirectional relationships.

Am I in the right way, or should I follow strictly your first orientation and use Static Application Architecture?

I beg again for your orientation. Master! ;)
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

The Essential Meta Model is designed to be extensible and you are free to add new things as you need. However, there are some things to consider:
  • If you do need to add new things to the meta model, we recommend that you extend (add to) rather than change or edit existing things. Obviously, to add a new attribute to a class by creating a new slot, you have to edit that class and that is fine but we do not recommend editing existing attributes.
  • Views that we provide for Essential Viewer assume the Essential Meta Model is either out-of-the-box or extended.
  • Any update packs that are released assume and are tested on the out-of-the-box meta model(s) and you will need to take care of re-applying / changing your extensions.
We're interested to know what kind of Application relationships you require that you cannot find in the Essential Meta Model. We are always keen to receive feedback and develop the meta model to support the widest range of requirements that we can and if we've missed something we would really like to add such things to the meta model.

Discussing this in the team, it occurred to us that you may be finding that the 'Application' meta class does not provide you with all the relationships that you need. I think it would be worth quickly describing the classes that should be used to capture and manage application artefacts.

As I mentioned in my last post, we use the 'Application_Provider' meta class to capture the things that are normally thought of as the applications in the enterprise. The Application meta class is a very simple class that provides a way to arbitrarily group Application Providers by a commonly used name. If you are not already, please make sure that you are capturing the systems in your architecture with the Application Provider meta class, rather than Application.

Do let us know more about the nature of the relationships that you need to capture and we can take things from there.

Jonathan
Essential Project Team
wktsugue
Posts: 7
Joined: 30 May 2011, 21:19

Hi Jonathan,
Very thanx again for your attention. We are (trying)starting Enterprise Architecture practice in our company due to happened problems like redundancies, re-work of same functions, not so good interoperation between systems, performance bottlenecks between different applications, and others. We are searching for EA supporting tools like IBM System Architect. But of course, the best tools in the market (Gartner Magic Quadrant for EA tools) has their (high) prices. And instead of use only Office package to support an EA practice, we found your tool (Essential) based on Protege, with GPL license. Of course we understand the limitations of an GPL license tool compared against an top ranked tool like IBM SA. We understand that we don't have yet the suffice maturity in EA practice to start using an high cost high performance tool (IBM SA). And we think the Essential is a good starting tool, and if we feel some functional lacks in Essential, this justifies buying IBM SA. We are trying to instantiate the TOGAF framework in our company. But I found some conceptual problems: how could I maintain the deliverables created during ADM lifecycle? At internal sharepoint site? But if so, how could I maintain it up to date? Could I refer those deliverables from Essential meta model using http links?

As you see, I have many questions and doubts about details of instrumentalization part of the EA pratice.

Thanx.
Wilson.
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

Hi Wilson,

As well as being licensed open source, the aim of the Essential Project is to develop the EA tools that real architects need and we believe that there are many features that we've been able to support for our user community that are not possible in some of the expensive, commercial tools. So, please do let us know if there's something that you need to be able to do and that you cannot find in the Essential toolkit.

In terms of using Essential to manage the artefacts of your TOGAF approach, the Essential Views are often used as automatically-generated TOGAF Viewpoints that can be shared by sending the URL to that view. In addition, any instance in the Essential repository has an attribute 'External Reference' which is exactly what you are asking for. This attribute enables you to link the artefact in the Essential repository to one or more 'external' artefacts via a URL (HTTP), e.g. Office documents on a network drive, intranet sites, Sharepoint portals and so on.

This attribute was added in direct response to a request for this capability from a member of our community. Most of the out-of-the-box Views do not yet use this 'External Reference' but it is a simple modification to add this to any of the Views that you need to use and of course to your own custom Views.

Let me know if you need any further advice on capturing the application dependencies and duplication as we have designed the meta model to manage such things and a number of the OOTB Views provide clear descriptions of the duplication of capability / the dependencies etc.

Jonathan
Essential Project Team
Post Reply