The key is to start with layering the application into logical and physical layers. When you layer the application carefully consider how you physically separate layers. You’ll also want to make sure the layers are loosely coupled to ease future physical separation to facilitate scaling up.
Typical layers included in a SaaS application:
- Presentation Layer (a.k.a. the UI)
- The Business Logic Layer
- The Application Framework Layer
- The Object Relational Mapping (ORM) Layer
- The Web Service API Layer
- The Caching/Persistence layer
- The Database layer
Within the individual layers of the application beware of unnecessary chattiness between the layers. Also be aware of making it too easy to load an unnecessarily large object graphs. Meaning only get the data when and where you need it.
If you are selling to the B2B space you will need to make integration with 3rd party applications fast and easy. Building an API using web services with SOAP or REST are the tool of choice for providing a Service Orientation for SaaS application. Keep in mind; you will need to throttle user access to API to prevent performance degradation. Typical throttles include restricting the volume of data that can be retrieved over a specific period of time and restricting the number of connections.
During the design phase try to break a single logical app into services when there’s a clear need for integrations, or when the need to span and cluster hardware is foreseen in a functional area. For long running operations try to leverage asynchronous operations. For example, consider building a request pipeline at the application layer. When all requests (retrieve, save, delete, etc) funnel through common code, you have a unified injection point for security, logging, performance monitoring.
No comments:
Post a Comment