Comparing the two tools is like comparing apples to oranges at best.. The
are two completely different tools with completely different set of
capabilities with only a couple of capabilities in common.

The number one reason I would choose the SQL routes over others if the SQL
route is a possible solution, is its efficiency assuming you have a good SQL
code. Executing SQL code bypasses the ARS application layer, and that in
itself, is an advantage for performance reasons. Direct SQL's are thrown to
the DB server AS-IS, even if it is garbage. Is that a bad thing? Not
necessarily. You just don't write code without validating it for its
correctness and efficiency do you?

Agreed, if you move databases, some SQL code MAY not remain valid, and may
have to be modified. This is true even sometimes with a DB upgrade. But how
often does that really happen? If that is the primary concern, it is
possible to pre-prepare code for other databases, if the code would differ
for the same operation by doing a $DATABASE$ check of what is the current
database.

Examples of when web-services over any other direct method may be preferred:
1) You have absolutely no clue about the other application you want to
submit or retrieve information from and that system does have web service
publishing capabilities.
2) You have no time or reasons to justify the re-invention of a wheel, if
its just a simple submit/query type of an action you want the ARS to perform
on the other application or vice versa..
3) You trust the other application is well written, if you have to query
from a large table, so the underlying query performed by the web service is
efficient. If not, you might be better off with a DB-Link solution.

Examples of when a DB-Link may be preferred:
1) You want to display the results of a query into another application on a
table field in the ARS.
2) An external application needs to query an ARS join form, that could more
efficiently be done with a union join. Creating that union join at DB level
and publishing a DB-Link to it might be a better idea than to create that
join at DB level and creating a Remedy view form. If you are going to create
a join at DB level, you might as well maintain the whole integration effort
from the DB perspective..
3) Querying large tables where you suspect default application queries are
inefficient..

Joe


  -----Original Message-----
  From: Action Request System discussion list(ARSList)
[mailto:arsl...@arslist.org]on Behalf Of Chintan Shah
  Sent: Saturday, July 10, 2010 1:55 AM
  To: arslist@ARSLIST.ORG
  Subject: Re: DB Links vs Webservices


  ** Hi Naveen,

        I prefer 3-tier architecture rather than 2-tier solely because
working with data-model directly is not a scalable design.

        I prefer web-services route only because I dont have to deal with
SQL havocs(I am not SQL guru :)) and working with Databases which I dont own
and have no control on. Furthermore, if database gets changed then you have
to re-generate your view forms and re-attach workflow which is tedious and
difficult to maintain over time(actually this is something that we just
realized in our team).

        Think of databases as confidential papers or stores of personal
information. If somebody knocks at your door and asks you about those
confidential papers, how would you like to give them? Would you just,  tell
them to go and get them yourself, they are in so and so locker, or would you
rather have them wait there and fetch papers yourself or through a trusted
party?

        Tomorrow if the team with whom you are integrating changes their DB
provider and if for God knows what reason your SQL breaks, then you are in
trouble. Instead if they have a web-service in front of their DB, you
wouldnt even care what they use on backend. Web-service itself is a binding
contract between you and them. Also, I believe you can do tonnes of things
on middle tier (like transaction/messaging management, writing to logs
etc.)..which otherwise if you want to do in Remedy then it will become heavy
task.

        Web-services are good for transactions..like if you are inserting
data into db and waiting for an ID in response, that's where they could be
really good, since you would be getting real-time data.

        1 thing I really admire about web-services is their
synchronous/asynchronous behavior. I am not really sure if it is achievable
through direct SQL. I am having a real-time scenario where we are inserting
data into other team's DB and it takes about 15 minutes for them to generate
an ID. Since, they dont have web-services infrastructure, we have to go and
poll their DB every 15 minutes, and sometimes it could be a hit- and-miss
kind of situation. With web-services on both sides, data would flow
seamlessly as and when available and we dont need any unnecessary
escalations.


        Also, if you look at Remedy's architecture, its good practice to use
either api or web-services...and as far as I am concerned I would like to
minimize direct SQL unless extremely necessary...since we want Remedy server
to handle all our DB transactions instead of our hand-written SQL code.

        My 2 cents. No offense to any SQL experts or people who prefer to go
directly to DB.

        I know that this could be a never-ending discussion, but I just
wanted to point out few things where I believe web-services would be good.

        Thanks
        Chintan.

        --- On Tue, 7/6/10, NNMN <naveen...@gmail.com> wrote:


          From: NNMN <naveen...@gmail.com>
          Subject: DB Links vs Webservices
          To: arslist@ARSLIST.ORG
          Date: Tuesday, July 6, 2010, 4:38 AM


          Hi ARSers,

          Something which i have been thinking about. I want to know your
views on
          this.
          Let us imagine we have systems, SYS-A(Remedy with its backend) and
          SYS-B(another platform app(like java,.NET etc) with its backend).
Now if i
          want the data from both these systems to flow from each other for
certain
          interactions, lets say i have the possibility of below methods.
          Method-1) I use web-services exposed from both sides to mutually
call and
          get the input/output approprately and thus i acheive transactions.
          Method-2) I expose some relavant schema details as DB links and
then i
          access them from where ever required (as view forms Remedy).

          Now i want to know about the pros and cons of above methods with
respect to
          . I always feel that Method 2 is kind of crude way of
implementing, but in a
          way i get this feeling from many i talked, that it is an easier
and
          effortless way to go about it. Still thinking on a long term,
reliability,
          data-transfer speed etc
          factors.

          Cheers,
          Naveen

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

Reply via email to