Orange Leap – Architecture

Document Sample
Orange Leap – Architecture Powered By Docstoc
					Orange Leap – Architecture


 Orange Leap is the non-profit industry's first Active Constituent Relationship Management (ACRM) Platform. It has
 been designed from the ground up to be customizable on an organization-by-organization basis. Orange Leap
 provides the most flexible, lowest-cost CRM solution available to the non-profit market.

 Customizations can be performed at virtually every layer of the application. A key benefit to a customizable
 architecture is that we can adapt the solution to support your existing business processes rather than the other way
 around. By implementing your business processes with the Orange Leap platform, we can reduce your organization's
 CRM system's operational costs.

 What is an ACRM?

 Traditional CRM solutions available today are nothing more than passive data repositories. They do little to enforce
 business processes or reduce the manual processes associated with operating a non-profit's CRM solution. This
 means that people are responsible for executing your organization's business processes which proves to be a major
 risk to most non-profits. When an employee leaves, a significant part of your business processes and knowledge can
 potentially leave with them. The cost to retrain a new employee is significant as often these business processes are
 not appropriately documented and have changed over time.

 By deploying Orange Leap's ACRM, your organization's business processes are actually executed by the system
 rather than the people in your organization. This means that your employees can be repurposed to focus on
 fundraising strategy rather than software strategy. This also means that business processes will continue
 uninterrupted regardless of the employee's availability. All of this leads to a lower cost to operate Orange Leap's
 ACRM, as well as a more hands-on treatment and focus of your constituents and fostering of those relationships.

 Benefits of the Orange Leap Architecture

 Orange Leap's architecture provides significant benefit to our customers and their business. Ultimately, all of the
 architectural decisions have been made with one of two goals in mind:

 1. Lower Total Cost of Ownership

   * Orange Leap is a SaaS (Software as a Service) solution -- no infrastructure is required (including administration).
   * Orange Leap's customization capability allow your implementation:
       o To be adapted to your existing business processes.
       o To evolve with your organization, changing as you change.
   * Orange Leap's automation capabilities:
       o Allow you to eliminate cumbersome and error-prone manual processes.
       o Can automatically execute your business processes. | | 1 (800) 562-5150 | 13800 Montfort Drive, Suite 220, Dallas TX 75240
Orange Leap – Architecture

  2. To be Easy to Use

 * Orange Leap's customizable user interface can be adapted to your requirements, eliminating unnecessary and
 confusing elements.
    * Customizable required fields and input formats can ensure consistent data entry, which in turn, improves your
 reporting accuracy.
    * Customizable error messages can reduce confusion and support time.
    * Customizable business rules can perform your process for you, eliminating cumbersome and error-prone manual
 processes and improving segmentation accuracy.

 Hosting Service Provider

 Orange Leap is hosted at Rackspace. Rackspace is a premier hosting provider for application services, providing
 Tier 1 support with a two-hour hardware replacement guarantee in the event of a hardware failure. In addition,
 Rackspace provides Tier 1 support and manages all Firewalls, Routers, Load Balancers, RedHat Linux Servers,
 Apache Web Servers, as well as for MySQL Server support. Both on-site as well as off-site backup services are
 provided, too.

 Network Architecture

 Orange Leap's network is fully redundant with no single point of failure within it. We deploy multiple devices at every
 level of our network to ensure that a hardware failure cannot eliminate or diminish service delivery. Multiple devices
 ensure that we can scale our offering at both the hardware as well as the software layer. We are utilizing a layer 7
 switch (CSS) from Cisco to provide load balancing from the outside of our network as well as the inside of our
 network. | | 1 (800) 562-5150 | 13800 Montfort Drive, Suite 220, Dallas TX 75240
Orange Leap – Architecture

 Orange Leap Architecture

 Most CRM applications available today utilize a traditional client/server architecture. Orange Leap's ACRM employs
 a N-Tier architecture that is scalable at every layer. This ensures that we can scale individual layers of our application
 independently of the other.

 Orange Leap Architectural Components


 Orange Leap utilizes MySQL for a database server. Currently, we are utilizing master/server replication which means
 we use two database servers; we are constantly communicating with one and replicating to another. It is key to
 understand the The Guru executes reports on our replicated database. It still allows for real-time reporting, but does
 not impact the transactional database.

 As we scale our offering, we will likely utilize a MySQL cluster for greater scalability. Orange Leap utilizes a split
 database architecture allowing each customer to be provided a separate database instance, ensuring that customer
 data is not co-mingled, greatly reducing the threat to customer data. Additionally, this enables us to provide database
 backup and restore functions on a customer-by-customer basis -- a solution which provides the best mix of both
 scale and security. | | 1 (800) 562-5150 | 13800 Montfort Drive, Suite 220, Dallas TX 75240
Orange Leap – Architecture

 Data Access Layer

 The data access layer translates our relationship database model to an object model; it turns the relational tables into
 individual Java objects, and hands back domain objects that are used within the service layer. Orange Leap has
 implemented its data access layer utilizing iBATIS. The iBATIS Data Mapper provides a very simple and flexible
 means of moving data between your Java objects and a relational database. By utilizing iBATIS, Orange Leap also
 isolates the individual SQL calls into XML; this allows Orange Leap to utilize other database vendors (Oracle,
 Postgres, SQL Server) by simply modifying the XML (minimal to no Java code changes need to occur). This also
 allows us to scale to address database performance thresholds to either move to a full scale MySQL cluster or to an
 Oracle database on a large multi-corp Sun box.

 Our database servers have internal disk arrays, running RAID level 5. In 2010, we will move the database
 architecture onto a Storage Array Network (SAN) with RAID Level 5, which will provide us data expansion
 capabilities much beyond what can be done with just a single server.

 Domain Model

 Orange Leap's domain model is a collection of plain old java objects (POJOs); we have them for addresses, gifts,
 constituents, and all of the basic business entities within our system. They are simply utilized to encapsulate data and
 contain little to no logic. This provides a clean separation of data and logic within the platform, and also means that
 our Domain Model Objects can be utilized by the Service Layer and the Business Rule Engine, as well as potentially
 by a client-side API.

 The client-side of our APIs can use the same POJOs as our service side of our APIs because they are completely
 separate from the data access layer and the service layer.

 Integration Layer

 Orange Leap supports various integrations: SOAP API, REST API, email, and The Guru; The Guru is utilized for our
 document merge functionality for email and mail templates. Third party integrations would occur at our SOAP or
 REST layers, or integrate directly with the Orange Leap Active Network.

 Our Orange Leap Active Network bridges our hosted network at Rackspace and the customer's network. By using
 our Active Network, we can provide adaptations for MIP, Quickbooks, or other customer on-premise applications. To
 utilize the Active Network integration, we would install a small piece of software on a computer in the customer's
 network; that software would connect to the Orange Leap Active Network and would receive XML messages off of
 the network and translate those messages into the appropriate format, whether that is for MIP, Quickbooks, etc.

 Orange Leap's integration layer has been implemented on top of Spring Integration. Spring Integration provides an
 extension of the Spring programming model to support the well-known Enterprise Integration Patterns while building
 on the Spring Framework's existing support for enterprise integration. It enables simple messaging within
 Spring-based applications and integrates with external systems via simple adapters. Spring Integration's primary goal
 is to provide a simple model for building enterprise integration solutions while maintaining the separation of concerns | | 1 (800) 562-5150 | 13800 Montfort Drive, Suite 220, Dallas TX 75240
Orange Leap – Architecture

 that is essential for producing maintainable, testable code.

 Furthermore, Orange Leap separates Business Rules Processing, Active Messaging, Payment processing, etc... from
 the core Service Layer by utilizing Spring Integration. It also allows us to easily add integrations without affecting the
 Service Layer code; for example, workflow can easily be integrated into Orange Leap through our Integration Layer.

 Service Layer

 Orange Leap's application services are written in Java utilizing the Spring Framework. Orange Leap's application
 services follow a simple Interface/Implementation pattern which allows us to swap out implementations without
 affecting the calling application. A good example of this would be credit card payment processors -- we can easily
 swap out credit card processor implementations without having to change a single line of Java code within our
 service layer.

 The Service Layer provides all of the business logic for the Orange Leap platform as well as provides the link to the
 integration layer. All business logic is implemented in either Java or the Business Rules Engine. The decision to
 implement in Java versus the Business Rules Engine is based upon whether or not the logic will be customized on a
 customer-by-customer basis. If it needs to be customized, the logic is implemented in the Business Rules Engine;
 otherwise, it is implemented in Java. One might ask, Why not implement all logic in the Business Rules Engine?
 The simple answer is performance. Java is orders-of-magnitude faster at executing logic than the Business Rules

 Presentation Layer

 Orange Leap's presentation layer provides the customization capabilities to the entire User Interface (UI). Orange
 Leap's UI is also completely data-driven. When a form is requested by the web browser, the presentation layer
 determines what fields and in what order they are displayed on an organization-by-organization basis. Additionally,
 the presentation layer determines which fields are required, default formats, and associated error codes for each
 form field. Essentially, every form is created dynamically when the form is requested.

 Orange Leap's presentation layer is implemented as a combination of java script, special java script tags to define
 custom fields, custom sections, etc, jquery and html. The presentation layer communicates with the services layer
 utilizing Spring MVC and Spring Forms. Essentially, the presentation layer talks to form controllers that talks to the
 service layer. The form controllers take HTML forms and converting them into domain objects and calling into the
 service layer.

 Potential performance issues are addressed by implementing memory level caching within the application layer and
 database level caching within the database layer.

 Orange Leap Active Network

 The Orange Leap Active Network is implemented on top of ActiveMQ - an open source Java messaging service
 provider. Orange Leap's Active Network provides a bi-directional, publish-subscribe network that allows Orange | | 1 (800) 562-5150 | 13800 Montfort Drive, Suite 220, Dallas TX 75240
Orange Leap – Architecture

 Leap to exchange XML messages with third-party integrations. The Active Network allows Orange Leap to extend its
 message exchange into a customer's enterprise. This provides the facilities for Orange Leap to exchange gift
 information with the customer's on-premise accounting system. Additionally, other existing customer applications or
 systems, such as a Web Content Management System, can exchange data back to Orange Leap with the same
 messaging exchange.

 For example, if the CMS had the ability to change a home address, they could:

   * publish the XML representation of address onto the network,
   * the application would catch that message and transform it into a domain objects for an address,
   * pass it to the services layer and data access layer, and
   * then into the database.

 Because the network is loosely coupled and guarantees delivery, messages will never be lost, even if one end of the
 communication is unavailable. This is a significant departure from how most integrations are done in the non-profit
 world today. We do not rely on tightly coupled and fragile API's or cumbersome and error prone extract-transfer-load
 (ETL) processes. | | 1 (800) 562-5150 | 13800 Montfort Drive, Suite 220, Dallas TX 75240

Shared By: