Enterprise Quality Domain Model Frameworks

Don't waste time starting from scratch and reinventing the wheel for your cloud application.

Pagebloom provides complete, robust, proven, enterprise quality Java frameworks as a rock solid foundation on which to build your application's domain model.

The pagebloom cloud platform provides Java frameworks for the most common web application requirements: authentication, security, enterprise entities, actors, process definitions, workflow, email and SMS services. All frameworks are seamlessly integrated and all are multi-tenant compatible: the frameworks support multiple organizations and everything occurs within the context of an organization.

You can focus on implementing the specialized classes required for your killer web app instead of "reinventing the wheel". You get to market faster, you're more productive and thus increase your company's market share and thus its chance of success.

The pagebloom cloud platform provides the following Java frameworks right out of the box:

Enterprise Domain Model

The underlying domain model for any modern web application deals with core enterprise entities, roles and values and the pagebloom cloud platform provides robust implementations of these core domain classes in a fully integrated, proven enterprise framework.

The framework architecture is based on a role based structure that allows new capabilities to be added and removed from entities by the addition or removal or 'roles' instead of a static and less flexible approach of adding these capabilities at different points in a class hierachy. This approach means that the entity class hierachy remains fairly simple because functionality and capabilities are managed by the entity's collection of role objects and not the way the entities themselves are coded.

Entity classes exist that model:

  1. people
  2. organizations (including support for multi level hierarchical organizational structures)
  3. machines (IT resources, computers, servers, services etc.,)

Roles include:

  1. user -  a user of a cloud application - responsible for holding the credentials of the user and tracking authenticated users
  2. human site visitor -  a human visitor of a website
  3. crawler site visitor - a bot or crawler (typically search engine crawler) that visits a website - crawler detection code is built into the framework. Special treatment must be given to crawlers to avoid creating a session for each HTTP request as they don't typically have cookies enabled and some make quite frequent requests - burning lots of session and related memory of not catered for appropriately.
  4. actor role - a role taken on by any person who interacts with an organization. Actors can have sub-roles that are specific to the particular organization the actor is associated with. A person can interact with multiple organizations, each organizational relationship encapsulated by a separate Actor instance. All auditing takes place on actor objects.
  5. employer role - a specialized role to manage employees of an organization
  6. student body - a specialized role to manage students of an educational institution
  7. publisher - manages subscriptions to a newsfeed or newletter and is responsible for publishing content to subscribers.
  8. financial investment manager - a specialized role to manage the investments of investors

Actor Roles include:

  • Organization adminstrator - can perform administrative tasks of an organization.
  • Audit Role - can view audit reports of an organization
  • Statistics Role - can view statistics of an organization
  • Employee Role - an employee of an organization having an employer role
  • Subscriber - will receive email containing requested content when it is published
  • Finance administrator - adminsters the financial aspects of an organization
  • Investor - an investore in a financial investment managed by a financial investment manager
  • and the myriad of relationships that exist between them. These relationships are managed in terms of roles.


The pagebloom cloud platform's workflow engine is completely integrated with the enterprise model. It is not a separate engine that had to be 'retrofitted' to a particular enterprise domain model but was built as a fully integrated layer that sits above the enterprise model. For this reason it is also multi-tenant capable and aware.

The development of a workflow process involves the following:

  1. Define a new workflow process definition
  2. Define which Actor Roles can invoke this process
  3. Assign Actor Role definitions to the organization unit that can perform the process
  4. Assign Actor Roles to actors within that organization that can perform the process

Execution of a workflow process involves:

  1. Create an instance of the process and submit it to the organization for processing

The process will be assigned to the actor within the organization who has the appropriate actor role and who currently has the lowest workload.

All workflow engine processing takes place in a separate background thread via simple message queues to avoid the need for direct thread-to-thread communication which avoids many potential concurrency issues.

Communication Services

The framework contains the following communication facilities:

Email Service

Email Service using "Persistent" outbox - all emails are queued in a persistent outbox so that, after any server failure, emailing will continue from where it left off avoiding the loss of any emails. For audit purposes all emails sent are recorded in the datastore.

Various email types are supported: Text, HTML and Template. Template emails allow the user, via the admin screens, to configure an email whose content uses variables like ${firstname} ${lastname} etc., to generate email content by processing the template variables. Template emails are stored much more efficiently as only a single instance of the template is stored along with a collection of references to the entities used in the template processing. An audit trail of the emails is preserved but a much smaller amount of data is required for that storage compared to storing the entire email for each recipient.

SMS Service

SMS service using a persistent out box - all SMSes are queued in a persistent outbox so that they will not be lost in the case of a server failure.

Authentication Service

Authentication is built in and will authenticate based on the credentials supplied in the user interface's log in form. By default the authentication service will compare those credentials with that of UserS stored in the database. Some cloud application developers have different requirements for authentication and so 'pluggable' IAuthenticator objects can be supplied to the Authentication Service at start up. A developer can provide their own IAuthenticator implementation to implement authentication however they wish.

Media Management

The developers of the pagebloom cloud platform are very aware of the importance of media in cloud applications. Media can range from images (.jpg, .png, .gif etc.,) to Flash animations, Word documents or Adobe Acrobat documents. For this reason a special Media Manager framework exists to manage a collection of media assets in a multi tenanted environment. Media assets, when uploaded via the media manager screens in the pagebloom cloud platform's media manager screens are from that point managed by the media manager and are selectable in the WYSIWYG/Rich Text Editors that form part of the pagebloom cloud platform's content management pages.

Data Import

Many web applications are integrated with other systems, often back end systems of the same organization for which the website is built. Often it is necessary to be able to import data from those other systems.

The pagebloom cloud platform has a set of data import frameworks to make this process extremely easy. It supports .csv, .txt and .excel format data files.

Employee Data Import

A form of data import focused on Employee record import was developed a few years ago reflecting a high demand for the ability to import existing employee data for an organization and make that available in the organization's cloud application. WIth pagebloom it is very easy to import a set of employee records from a payroll file and create the appropriate Person, Actor and Employee roles from that data.