Implemented Features (see Notes for Details)

GACL Version 1.2 - (GRID Version 1.0) - Released April 2011

  • Stability: DOS / overflow protection on batch queries.
  • Scalability: Distributed frontend (aka 3rd level) caching on the most frequently used query types.
  • Realtime monitoring: Displays system health and service status (see /monitor/).
  • L10N/I18N for categories (see Trivial Datasource)
  • SOAP and REST APIs:
    • Public available:
      • Authenticate via REST in addition to SOAP (REST API derives from the SOAP API).
    • Available in the protected namespace:
      • SOAP API "cache-control" allows to invalidate caches from remote and gather information on cache efficiency.
      • SOAP API "server-statistics" allows to monitor load and usage from remote (including a REST based interface, that allows to retrieve information from connected cluster nodes).
      • Start reprocessing jobs or restart stale jobs in a transaction safe way.
      • Batch query on job states for known job GUIDs (simplifies job monitoring).
      • Forward and reverse category matching methods for files and packages.
        Allows execute the queries "what files/packages belong to 'category a'" and "what are the categories for the given list of files/packages".

GACL Version 1.1 - (GRID Version 1.0) - Released January 2011

  • Public query for Metadata (see Metadata Handler)..
  • Freely configurable path pattern used to store the binary file content (see CIFS DataSource).
  • Separate TestSuite supporting automated CI, manual and synthetic testing.
  • Reliability: The ACL nodes restart automatically when an out-of-memory error occurred.

GACL Version 1.0 - (GRID Version 1.0) - Released August 2010

  • Self contained, easy to use, portable JEE server solution running on Linux or Windows.
  • Object oriented, modular design. (multiple API layers, maintenance & extension friendly)
  • Admin-, usage guides and SDK (with example clients) included in the package.
  • Multisite concept ready. (Documented and considered in the design of the internal data structures)
  • Data persistence & binding using a DB abstraction layer supporting the CoreDB Schema on MSSQL and HSQL database engine. (Support for DB engines is realized via a plugin API, with very low efforts to attach others)
  • Framework for storing and finding tagged products and files based on tag expression searches that are either freely defined or bound to categories.
  • Full change history recording allowing to trace how products change over time.
  • SOAP and REST APIs:
    • Public available:
      • Known good / bad or unknown status on files by SHA1 or SHA1 + MD5 query.
      • Query products or individual files that match tag expressions (and an optional time range on: "last processed" or "first seen")
      • Query basic information on files and products / packages (hashes, timestamps, tags and count of referencing sources and packages or contained files)
      • Query category views, categories and the products belonging to it.
    • Additionally available inside the protected namespace, URI "../internal/..":
      • Submit files for processing including metadata, basic job management and prioritization.
      • Query processing status on submitted files (basic support for process tracing).
      • Query and update source information (last modified, custom content tag, source content SHA1 / MD5) using public URIs or source identifiers (SHA1 based) in order to avoid reprocessing of existing information.
      • Query and update metadata on sources and jobs.
      • Query / download file contents based on SHA1 or SHA1 + MD5. (Note: Can be used in conjunction with tag expression / date range queries to download files based on certain criteria.)
      • Query file and product metadata based on SHA1 or SHA1 + MD5 or product names.
  • Binding to the GRID message bus via the generic module HTTPMSMQBridge (the bridge is not part of the ACL, it is a separate module allowing language neutral access to MSMQ)
  • Binding to the file repository using an embedded CIFS connection (no OS support required) or using OS supported local mounts or shares (using any protocol supported by OS).
  • File logging (rolling / compressed log) and JMX monitoring enabled.
  • Generic distributed caching (Level 2 cache, driven by Hibernate + Infinispan + JGroups)

EA Features - (Implemented, but not entirely tested & bound to quality of back-end processing)

  • SOAP and REST APIs:
    • Public available:
      • Query relationships:
        • Query for products or packages that a file belongs to.
        • Query for products that contain certain products or packages.
        • Query for products or packages that are contained in a given product or package.
      • Query for all product variants of a product family (e.g. version, L10N, platforms)
      • Query the product families of a certain vendor.
      • Query known vendors.
      • Send feedback on file access counts (including option to report files in the wild, not actually known by the GRID)
    • Additionally available inside the protected namespace, URI "../internal/..":
      • Query and update metadata on vendors, product families.
      • Query the list of sources of a particular file or job.

Unimplemented Features

  • Security Model
    • Pure private interfaces are not implemented.
    • Filter source URIs based on profiles.
    • Support LDAP / Kerberos authentication.
  • Multisite.

Road Map Items for Future Releases

  • Finish implementing the security model:
    • To allow retrieval of more meta keys via public SOAP services.
    • To allow source information retrieval via public SOAP services.
    • To allow authentication based security over pure URL filtering.
  • Implement the multisite concept.
  • Offer additional SOAP / REST services (!!requires feedback from customers!!)
  • Improve coverage scores in Sonar.
    (1.2 is @ 50.2%, see http://ci.cttl.trendmicro.de/sonar/dashboard/index/com.trendmicro.grid.acl:access-layer)

Note: The complete road map is maintained within Redmine. Users with project privileges can open the URL below: http://redmine.cttl.trendmicro.de/projects/accesslayer/roadmap?completed=1