Menu

#10 Check to see if service is running

open
nobody
None
5
2006-02-22
2006-02-21
No

This method needs to be implemented in order to
retrieve whether a service is running or not

boolean ClientHelper.isServiceRunning(SMID)

(pseudo-code)

Discussion

  • Juanjo Aparicio Jara

    • status: open --> pending
     
  • Juanjo Aparicio Jara

    Logged In: YES
    user_id=228477

    I see several objections to this method:
    - First, there is an additional round-trip to be executed.
    This method should search in the p2p network for the service
    instance (proxy, ...) that belongs to this smid. If the
    service is found to be running and the client wants to use
    it, it has to use the existing methods, which means it has
    to search again. I suppose this is NOT what you want to
    accomplish.
    - Second, how is it known if the service is working or not?
    From the smid it is not known if the service has any safe
    method that can be gratuitously called just to see if the
    service is working. Even in that case, the semantics of the
    words "the service is working" are not clearly defined. Does
    it mean that the service is reachable? That its methods can
    be invoked? That the back-end service (if it exists) works?
    A sensible way to implement this would be to force all
    adapters to implement a safe method like this:

    public boolean isWorking();

    and delegate the decision to the adapter itself (that is
    written by the service provider). However, even this method
    has its own obvious drawbacks:
    - It adds yet another method the service provider has to
    implement
    - The semantics of the method are not clearly defined. Even
    if they are, it may be very difficult for the implementor to
    know if the service is really working or not. For instance,
    if the adapter uses a database, how does it know the
    database is working? Because the adapter can get a
    connection to it? Because it already has it?

    The p2p architecture is supposed to resolve this by
    providing only references to services that are working. The
    semantics of "working" in this case are defined as "the
    process that registered the presence of the service in the
    p2p architecture has not died and is still renewing its
    lease". In this case the process that does that is the servent.

    As a final note, what use is this method? Feature requests
    are welcome, but a little explanation on the whys and hows
    would help clear the picture, and allow other methods, more
    aligned with the overall architecture, to be designed and
    implemented.

     
  • Andy Edmonds

    Andy Edmonds - 2006-02-22

    Logged In: YES
    user_id=1312564

    All good points, however the reason for this request is
    Pierfranco's request that services' state be shown via the
    QF/SDT (see mail "DBE to do list proposal v0.2" dated 07-02-06)
    This is NOT a solution to find out whether or not a service
    is functional (logically, sematically), merely a "ping" of
    the service.
    If a service is alive a fada proxy will be registered,
    therefore if you can get a proxy for a supplied SMID we can
    use a loose heuristc that the service is "alive"

     
  • Andy Edmonds

    Andy Edmonds - 2006-02-22
    • status: pending --> open
     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.