Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

User Story #4278 (closed)

Opened 9 years ago

Closed 8 years ago

API unification

Reported by: wmoore Owned by:
Priority: critical Milestone: OMERO-Beta4.3
Component: API Keywords: n.a.
Cc: omero-team@… Story Points: n.a.
Sprint: n.a. Importance: n.a.
Total Remaining Time: 0.0d Estimated Remaining Time: n.a.

Description (last modified by wmoore)

Goal for 4.3 release - stabilise the blitz gateway API

  • Reduce method count by using generic methods
  • Use this as a model for new OMERO service
  • Object wrapper methods should reflect methods of underlying objects

Change History (10)

comment:1 Changed 9 years ago by jburel

  • Sprint changed from 2011-02-10 (5) to 2011-02-24 (6)

Moved from sprint 2011-02-10 (5)

comment:2 Changed 9 years ago by wmoore

Meeting scheduled for Tuesday 15th Feb, 9.30am. Main question to answer is:

  • How similar should we attempt to make the Python and Java client APIs?

comment:3 Changed 9 years ago by wmoore

Josh's notes from meeting 15th Feb 2011

API unification meeting: Will, Chris, Ola, Jean-Marie, Josh (9:30 UK)

* Initial
   * Will: Still have cleaning up to do
   * Jean-Marie: Need to prevent explosion of gateway methods
       * Start with mgmt methods
       * ...
* Primary question: Do we keep the two synchronized?
   * createGateway
       * Adam used it
       * Will used it in his scripts & examples
   * Chris: have 3 gateways in Python
       * script_utils, GatewayPrx, omero.gateway.BlitzGateway
   * Overview (Will):
       * Certain number of methods in gateway module ("ton of wrappers")
           * Caching (Python-y stuff)
           * Extension point (historical, for Carlos & Ola to work together)
           * Some methods (getComments...) shouldn't necessarily be there
       * Jean-Marie: doesn't scale
       * Will: trying to make it more generic
           * Trying to get rid of "getDataset" etc.
           * getX(id)
           * listY() - convention
           * In Python, you only retrieve the root of the graph
           * Jean-Marie: load methods get whole graph.
       * Chris: @Wrapper around IQuery to prevent pain
           * Good number of the methods are single object retrievals
           * IQuery methods to mirror getObjects identically
           * Will: Wraps with appropriate wrappers.
           * Jean-Marie: purpose is to not have to know which service you are using
           * Jerome etc. want something simplified
           * Josh: are we trying to get away from services?
               * If so, then I'm for a unified API (Java & Python)
           * Chris: endemic of large number of services
               * Band-aiding core issue: to do work need 1/2 objects
               * Purpose would be to get common gateway in place.
       * Will: some of condensed methods have in lower-level service?
           * Jean-Marie: would rather do that.
       * Chris: currently methods expose that findAllByQuery is needed
           * Easy to push down
           * Jean-Marie: have to push them down
       * Will
           * Python would wrap
* Various
   * Chris: pojos hide lack of utility in services
   * Josh/Jean-Marie: could also use this as a method to get rid of pojos (i.e. message passing)
   * Will: can we tell people to start using it
       * Chris: Get rid of script_utils (4.3) in favor of blitz gateway
       * Remove server side gateway for 4.3
       * In the mean time, start moving logic to session or IQuery
       * For 4.3, no large changes to blitz gateway
       * Names are the same as in the model
       * Unifying some of blitz gateway methods
           * Chris: look at all retrieval methods and all getX
           * Figure out what lowest common denominator (e.g. "findExperimenterByName")
           * Need something like findByAttribute
   * Mark a good number as deprecated
       * Start marking methods & services deprecated (gateway, deleted, ...)
       * getObjects and some other are not yet released so can be removed

* Summary:
   * Need to unify these things and clean up our mess
   * Need to do our damndest that this does not continue
       * Everyone CANNOT create methods where they want
       * Is it documentation? Or is it not asking?

   * Wiki page for new remote API: *.slice file (Ice-compatbile objects)
   * Native binding page: omero.client, BlitzGateway/ (non-Ice tools)
       * Language- or Framework-specific

comment:4 Changed 9 years ago by wmoore

  • Description modified (diff)

comment:5 Changed 9 years ago by wmoore

  • Sprint 2011-02-24 (6) deleted

comment:6 Changed 9 years ago by agilo

  • Status changed from new to accepted

Updated status, related task in progress

comment:8 Changed 9 years ago by wmoore

  • Description modified (diff)
  • Summary changed from API unification - Python vv Java to API unification

comment:9 Changed 8 years ago by wmoore

  • Owner wmoore deleted

comment:10 Changed 8 years ago by jmoore

  • Resolution set to fixed
  • Status changed from accepted to closed

Moved remaining open tickets to #5926 and closing as part of 4.3.0

Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.252356 sec.)

We're Hiring!