Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

Applications need to have a way to manage Actors.

  • Actors can be people or organizations that are exposed to the end-user of the application.
  • Actors could also be external systems such as mail servers, payment gateways, EDI networks or anything for which the application developer needs to maintain a profile/configuration at run-time

...

  • or permanaently

Actor Management provides the core of the Party component and removes the current problem wherein the framework depends on the Party Component.

It is also required to implement the Security Framework .

Features:

  • Profile management
    • CRUD of Actors and Profiles
    • Actors can have a profile
    • Allows Objects to be associated with a profile - any org.apache.ofbiz.foundation.lang object including images and other files.
    • Actos can be assigned mutiple roles
    • Search by property name and value or existence.
    • Collection operations - sort

  • Role management
    • CRUD for roles. Could be in Security but Security Roles are a subset of all Roles - Mailer Role, Payment Gateway role would not fit in Security,
    •  Role assignment
    • Search by role

 

Design Goals

 

  • Single configuration file - located anywhere on the class path.
  • Extensible to support Party component
  • Thread-safe.

Basic Architecture

  • Library: OFBiz
  • Java package name: org.apache.ofbiz.foundation.actorManagement

Use cases

Adding an object to a user profile.

Actor Managememt should support adding objects to the profile

  • Dates
  • Strings
  • Files
  • Images
  • etc.

Objects have names

Objects should be typed. It seems that the Standard Media Types would be a good way to identify Object types.

Adding a payment gateway as an actor

It should be possible to use Actors to describe external systems by adding named configuration entries such as

  • URLs,
  • credentials,
  • parameters

If the application developer wanted to, they could assign the "Payment Gateway" role to the Actor to use to help organize and find configured gateways by looking for actors that have the "Payment Gateway" role.

Interface

ActorFactory get a new actor - possible some simple constructors that allow an actor to be created with a bunch of attached objects of the same type. Create a payment Gateway called "myGateway" with a URL, a username, a password, a display label.

Add a single object to an actor.

Add objects to an Actor - list of pbjects of the same type

Assign roles to an actor - single role, list of named roles.

Collection operations:

Find the actors that have properties matching a parameter