Skip to main content

Service oriented architecture - 1

SOA, Yes, it expands to Service oriented architecture. What is it?
Keep these things in mind during design and analysis.
1. Whenever you design a service, you are designing a service for a business task.
2. These services can be linked to achieve bigger business goals.

Let us understand 'Service':
In my view, a service is an expectation fulfillment for a service consumer, without service consumer actually worrying about how is it fulfilled.
For example: A student opts of 'Data structures' lesson. The delivery of a lesson is a service for the student. The professor does his homework, examples and makes sure that student understands the lesson. Student and the professor are the different entities, yet there is a well defined service contract between them which enabled two entities exchange the expectation without student actually worrying about the service implementation aspects of the professor.

So, to be called a service, it should be meaningful. It should satisfy the certain expectations. It should be bound by well defined interfaces. Any design that is designed keeping 'service definition' in mind, is a service oriented design.

SOA is an architectural model for integrating business partners', customers' and suppliers'services into enterprises' business processes. 

Why SOA?

  • Promotes reuse of IT investment in a business [will touch upon example, later]
  • Promotes greater IT flexibility [will touch upon example, later]
  • Greater IT flexibility means business flexibility [will touch upon example, later]
  • Helps enterprises comply with government regulations [will touch upon example, later]

SOA is characterized by
- Well defined interfaces between the services.

Barriers for SOA adoption:

  • Difficult to justify ROI [will touch upon reasons, later]
  • Build vs Buy justification
  • New IT investment or use existing IT investment
  • Complexity of legacy application [How, will touch upon later]

While designing the services, consider the following:
- Business and IT alignment
- SOA Governance
  • Decision rights
  • Processes
  • Policies
  • Controlling aspects
  • Monitoring aspects

SOA Governance enables stakeholders to identify ROI.

SOA: DIY Kit
  • ESB, for aggregation, routing , transformation
  • BPM, for business process orchestration
  • Web services, well known means of service implementation
Examples will follow ...

Comments

Popular posts from this blog

Essential GCP services for a new age application

Identity and resource management IAM  Identity aware proxy Resource Manager Stackdriver Monitoring Stackdriver Monitoring: Infrastructure and application monitoring Stackdriver Logging: Centralized logging Stackdriver Error Reporting: Application error reporting Stackdriver Trace: Application performance insights (latency) Stackdriver Debugger: Live production debugging Development management Cloud Deployment Manager: Templated Infrastructure deployment Cloud Console: Web based management console Cloud shell: Browser based terminal/CLI Development tools Cloud SDK: CLI for GCP Container registry: Private container registry Container builder: Build/Package container artifacts Cloud source repository: Hosted private git repository Database services Cloud SQL: Managed MySQL and PostgreSQL Cloud BigTable: HBase compatible non-relational DB Cloud Datastore: Horizontally scalable non-relational (ACID) Cloud Spanner: Horizontally scalable relation...

GCP: GAE - Memcache best practices

Memcache is a distributed in-memory data cache in front of or in place of robust persistent storage for some tasks. GAE includes a memory cache service for this purpose. Best practices for using memcache: 1. Handling memcache API failures gracefully; Do not expose errors to the end users 2. Use batching capability of the API when possible 3. Distribute load across your memcache keyspace Use sharding and aggregating for improving performance efficiency. Use TTL (expiration policy) to make sure the memcache does not fill-up indefinitely Use getIdentifiable() and putIfUntouched() for managing the values that may get affected by concurrent updates Use batching (getMulti ("comments", "commented_by") ) to fetch related values together instead of one by one Use graceful error handling

RAID Levels: Redundant Array of Independent Disks

Standard RAID levels comprise of configurations that employ the techniques of * STRIPING * MIRRORING * PARITY  to create large reliable data stores using general purpose HDDs. Levels are standardized by SNIA (Storage Networking Industry Association) in Common RAID Disk Drive Format (DDF) RAID 0 >> STRIPING (No fail-over, No Redundancy, Total loss of information if disk fails, each disk size will be of smallest disk size in the set of the disks) RAID 1 and its variants >> MIRRORING (Copy of write will be in more than one disk, Redundancy, less performant) RAID 5 >> Distributed PARITY RAID 6 >> Dual PARITY Source:   Wikipedia