Business Layer Scenarios Frame

J.D. Meier, Alex Homer, Jason Taylor, Prashant Bansode, Lonnie Wall, Rob Boucher, Akshay Bogawat

Categories

  • General
  • Authentication
  • Authorization
  • Business Components
  • Business Entities
  • Caching
  • Coupling and Cohesion
  • Concurrency and Transactions
  • Data Access
  • Exception Management
  • Logging and Instrumentation
  • Service Interface
  • Validation
  • Workflows

General

  • How to decide if you need a business layer?
  • How to design for reusing common business logic?
  • How to design for loosely coupled business layer?
  • How to design business process components?
  • How to design business workflow components?
  • How to design coarse-grained messages?
  • How to interact with data access layers?
  • How to communicate with other business objects or services?
  • How to design application service facades?
  • How to design remote facade components?
  • How to design a highly cohesive business layer?

Authentication

  • How to decide if you need authentication in business layer?
  • How to authenticate users in the business layer?
  • How to flow users across layers?
  • How to determine authentication strategy in your business layer?
  • How to use Windows Authentication in the business layer?
  • How to design custom authentication for your business layer?
  • How to design for IP filtering?

Authorization

  • How to determine authorization strategy in the business layer?
  • How to use Role-based authorization in the business layer?
  • How to use resource based authorization in the business layer?
  • How to use claims-based authorization in the business layer?
  • How to authorize users and processes in the business layer?
  • How design for impersonation in the business layer?
  • How design for delegation in the business layer?
  • How to use the trusted subsystem model in the business layer?

Business Components

  • How to design business components?
  • How to define responsibilities of business components?
  • How to divide functionality into different business components?
  • How to divide functionality between business components and business process components?
  • How to deal with tracking state with business components?
  • How to expose business components?
  • How to interact with business entities?
  • How to choose a rules engine?
  • How to design for using rules engine?
  • How to implement management instrumentation in business components?

Business Entities

  • How to choose data format for your business entities?
  • How to design business entities using a domain-driven approach?
  • How to design business entities using a database-driven approach?
  • How to design for including business rules in Business Entities?
  • How to expose business entities to other systems?
  • How to validate data in business entities?
  • How to pass business entities across tiers?

Caching

  • How to decide what to cache in the business layer?
  • How to decide what caching technique to use in the business layer?
  • How to determine where to cache data?
  • How to determine cache management strategy for business layer?
  • How to determine a expiration policy for cached data?
  • How to protect cached data?
  • How to deal with caching in a distributed server-farm environment?

Coupling and Cohesion

  • How to design loose coupling between business and other layers?
  • How to design message based interface for business layer?
  • How to design your business components to be highly cohesive?

Concurrency and Transactions

  • How to design for transactions in business layer?
  • How to design for distributed transactions?
  • How to design for long running transactions?
  • How to design for retries and compensation?
  • How to choose isolation level?
  • How to design for optimistic concurrency model?
  • How to design for pessimistic concurrency model?

Data Access

  • How to design access data from your business layer?
  • How to design accessing data in a distributed environment?
  • How to handle data access errors and propagate to other layers?

Exception Management

  • How to determine what are the common exceptions likely to occur in your business layer?
  • How to centralize your approach for handling boundary exceptions?
  • How to catch and process exceptions in the business layer?
  • How to pass exception information outside of the business layer?
  • How to determine when exception information should be propagated outside of the business layer?
  • How to use exceptions in the business layer?
  • How to design an exception logging strategy?
  • How to log exception data in the business layer?
  • How to deal with unhandled exceptions in the business layer?
  • How to protect sensitive data in exceptions?
  • How to optimize and streamline exceptions to avoid performance problems?

Logging and Instrumentation

  • How to determine what information you should log in your business layer?
  • How to design your business layer logging? How to determine an appropriate log sink?
  • How to secure business layer log communications and files?
  • How to insure logging does not negatively impact business layer performance?
  • How to monitor logs and design notifications?

Service Interface

  • How to choose an appropriate technology for service?
  • How to choose appropriate transport protocols and message formats for your services?
  • How to design service to communicate with other platform and services?
  • How to design service interface?
  • How to decide granularity of your service interface?
  • How to design exception handling for services?
  • How to implement type mapping in service interface?

Validation

  • How to determine trust boundaries for validation?
  • How to design centralized reusable validation solution?
  • How to perform validation for your business layer?
  • How to determine security validation requirements?

Workflows

  • How to determine if you need to use workflow in your business layer?
  • How to choose a workflow technology for your business layer?
  • How to know when to create your own custom workflow logic in the business layer
  • How to handle workflow errors?
  • How to design or retries and compensation?

Last edited Oct 15, 2008 at 9:48 PM by prashantbansode, version 6

Comments

No comments yet.