LJ,

Having done lots of OO stuff as well as ARS over the years, I fully grasp
the concepts you're putting forward, however, I think the goal should be
"Interfaces", not necessarily "API Interfaces". For most apps built using
java or .net (or some other OO platform) as a base, I agree that tightly
defined api interfaces are the way to go. But ARS is somewhat different in
that the integration tools already in existence are widely used both within
the ITSM as well as many other third party or custom apps and they afford
great flexibility, which is one of the reasons ARS became so popular to
begin with.

I don't see any reason that the capabilities we're talking about can't be
implemented via a "special" Interface Form type or layering versioning on
top of existing technology rather than requiring a call to a new C/java/.net
api. Not everyone uses the api to do integration and for integration between
apps both running on ARS platform (like the ITSM stuff), whether they are
BMC or someone else's, most will do it via workflow.

If the "special" form approach is used (and fully documented), then an
integration using the interface would behave exactly the same if it is done
via workflow, C API, Java API, .net api, Perl, etc... Nothing to stop BMC
from doing full error checking, implementing exceptions, etc... for activity
in the special form, and all the code would be visible so folks could easily
understand what is happening when they touch the form (or encounter
problems), regardless of the mechanism used. They could even define the
legal operations, exceptions, etc... via xml so others could build their own
Interface Forms for their own apps in a  standard way. In addition, we'd be
able to see exactly how the ITSM apps do their integration between each
other without searching all over the place for the push/set field workflow,
since it would all (or at least the majority of the big/important
operations) be localized to the appropriate Interface Form.

A potential drawback I see with this approach is that visual
studio/netbeans/eclipse/(insert your IDE here) might not see a specific
interface defined (i.e. we might still use setentry/getentry, which means
we'd have to actually read the interface spec....;). I suspect this is
exactly what some want, and again, there is nothing to stop BMC from adding
specific versioned interface api calls that interact with the appropriate
Interface Forms, but I think it would be a mistake to force the use of the
API, or any other particular mechanism when we don't have to do it to
achieve the goal, that being consistent, safe, published, versioned
interfaces between ITSM (or other) apps running on the ARS platform.

Cheers!


Subject: Re: Request for Comments 
From: LJ LongWing <lj.longw...@gmail.com> 
Reply-To: arslist@ARSLIST.ORG
Date: Wed, 2 Nov 2011 10:17:47 -0600

 
 
Richard,
The point of API interfaces is actually reduced flexibility....not really
the point, but a byproduct.  That reduced flexibility is actually a 'good'
thing though.  Remedy, in the way that it works now has absolutely no
enforced structure.  That lack of enforced structure allows you to literally
'do what you want'...which is extremely flexible, but extremely hard to
support and optimize.  When you setup API interfaces to a system, you harden
them and make them less flexible, but because of the defined contract
between the publisher and consumer you have extremely reliable results.
Because of this reliability you can guarantee results and ideally
scalability, and because of this contract you increase interoperability.

Additionally, when you add to this contract, versions of the API...it in
theory allows you to upgrade from ITSM 10 to 11, but you aren't required to
upgrade your integrated app, because your integrated app can continue to
communicate with your ITSM Suite on the 10 version of the API and will
continue to function EXACTLY the same as it did when you were actually
running that version.

That's the theory at least :D

-----Original Message-----
From: Action Request System discussion list(ARSList)
[mailto:arslist@ARSLIST.ORG] On Behalf Of Richard Baird
Sent: Wednesday, November 02, 2011 9:46 AM
To: arslist@ARSLIST.ORG
Subject: Re: Request for Comments

Good to hear David!

Here is a suggestion off the top of my head. Perhaps to help with one of
Axton's (and my) beefs, the concept of versioned interfaces, you could add a
reserved field for forms used as "interfaces" to implement versioning. Then
add checking of this field into the workflow objects such that, workflow
only fires if the versions match, or something to that effect. Perhaps a
combination of fields, one to hold the version number and another to
indicate if it is specific to the version or applicable to lower versions as
well or the lowest version number supported, etc?

That would allow you to share workflow between interface versions where
appropriate, and even perhaps have workflow with the same name, but
different version and also to have workflow specific to a particular
version, thereby implementing something with similar results to Inheritance.

I'm not sure that additional API calls would need to be defined as that
could result in reduced flexibility, however the interfaces would need to be
tightly documented.

Cheers!

Subject: Re: Request for Comments
From: "Easter, David" <david_eas...@bmc.com>
Date: Wed, 2 Nov 2011 10:00:02 -0500
 
** 
Just a quick comment - later versions of ITSM applications do have interface
forms that are expected to be used to interact with the applications.  These
are used mainly by web service queries, but would be appropriate for any
external communication into the application.   Those forms are the
recommended interaction point for external applications and insulate such
programs from the version-to-version changes in the underlying forms.

 

Please do continue the discussion - the ideas being expressed can certainly
enhance and improve upon the architecture - but wanted to make sure folks
know that the apps are already headed in this direction.

 

-David J. Easter

Manager of Product Management, Remedy Platform

BMC Software, Inc.

 

The opinions, statements, and/or suggested courses of action expressed in
this E-mail do not necessarily reflect those of BMC Software, Inc.  My
voluntary participation in this forum is not intended to convey a role as a
spokesperson, liaison or public relations representative for BMC Software,
Inc.

____________________________________________________________________________
___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"

____________________________________________________________________________
___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"
 
 

_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"

Reply via email to