Skip to main content

Object orientation and Service orientation

Object orientation is all about modeling the real world information mainly through encapsulation, abstraction, polymorphism, containment, inheritance and so on. In simple words, an object contains the data structures and methods to change the content state. A typical OO run-time manages the life cycle of objects. You can create as many objects as required as long as the run-time does not over run its memory.

Service orientation requires you to encapsulate a process. The operations of a services are interaction points with the particular process. Data structures are the arguments for these operations. Service run-time shall validate the correctness of the process. Service can have multiple invocation instances, not multiple instances of service itself.

Example: TrainTicketBookingService involves a process.
- Check the train timings //  interaction point
- Check the seat availability // interaction point
- Issue ticket // interaction point
There could be many ticket counters that provide this service, but as a service, TrainTicketBookingService is the only service.

It is possible to design service oriented architecture through well defined process with object orientation. However, we always need to keep in mind, our goal is the service implementation, not to expose object interactions.

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...

Socialism Vs Capitalism

I was discussing sociallism vs capitalism with my father, who is a retired economics professor. Found some interesting facts ... Sharing them ... Socialism believes in distributing wealth equally. For example: If there is INR 10000 and 10 people in the pool, every one gets INR 1000. Wow, that sounds great in a diversified society like ours. Will this work? My take is NO. Because, the focus is only on sharing the wealth. If every one gets equal share, high acheiver will downgrade himself or herself and low acheivers will still downgrade themselves. This is a chain reaction and will reach a point where you will not have anything to distribute. The opposite side is 'Capitalism' where only the acheiver gets the rewards for his or her efforts. India adopts hybrid policy of Socialism and Capitalism, where the distribution of wealth happens through public sector enterprises and wealth creation happens through private sectors. The policies will be made in such a way that private se...

Sub-netting: Divide a network into 2 or more networks

Points to keep in mind: 1. Computers that belong to a subnet are addressed with an identical most-sig bit group in the IP addresses 2. IP is logically divided into NetworkIdentifier/Routingprefix and Restfield/HostIdentifier 3. Routing prefix can be expressed as CIDR (Classless Inter-Domain Routing) notation. Ex. 198.51.100.0/24 Implies NetworkIdentifier has 24 bits allocated and Rest field has 8 bits allocated 4. A network is characterized by subnet mask or netmask, applied by bitwise AND operation Ex. For 198.51.100.0/24, the subnet mask is 255.255.255.0 Subnet masks are used to identify the networks *If 198.51.100.0 is NetworkIdentifier, then 198.51.100.255 is BroadcastIdentifier For Class A, mask is 255.0.0.0; Class B, mask is 255.255.0.0; Class C, mask is 255.255.255.0 5. Traffic is exchanged between subnets through routers, when the routing prefixes of the source and destination addresses differ; A router serves as a logical boundary between the subnets. Advantag...