Skip to main content

Posts

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

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

Dangling references

I picked up my data structures book and started reading it. First thing that came to my mind is, If I were a teacher, how would I explain to students on pointer concepts. Believe me, it is still a challenging concept to comprehend. Pointer is a like a phone number to reach a person. Pointer points to address of the object that holds the data. Now, what is dangling reference. It is possible that there can be many pointer variables pointing to same address. For example, You, myself, someone else can have the same phone number of the person to reach. Question: What if the person dies? :) I still will have phone number, but cannot reach him or her. On top of that, what if that phone number gets assigned to some other person. In that case, I will reach the wrong person. The phone number I have is a dangling reference. Pointer pointing to the address, but address does not hold the desired object anymore ... Simple, isnt it?

TV Application layer from BBC

BBC has open sourced its TV Application layer to enable TV application developers to create browser based TV apps. TAL is an abstraction layer that contains generally used widgets and Javascript that aid the developer to focus on providing consumption logic across many connected TVs. TAL comprises of various TV device configurations and settings that would free the developer from worrying about the specific settings that a particular TV brand demands.  TAL requires community support to extend its capability and have more widgets. BBC's sports app, news app and even I believe, iPlayer uses TAL. While BBC was implementing iPlayer in its antie framework, they hit upon the idea of abstracting the application layer and coined TAL. To encourage open source participation, they have recently open sourced it. In my view, there is a good potential for TV apps and TAL provides a platform for writing common consumption layer that can wrapped by native TV SDKs without tampering logic with n...

Key to adopt open source product

Friends, I am working on business solution implementation on open source product called Kaltura. Kaltura is a media management solution and has loads of features that compel any business to take a peek into it. More-over this is the only complete end-to-end open source software available to handle digital assets. But it comes with its own head ache. Considering its open source, its understandable. I feel, handling these would ensure you the success in your open source product implementation. 1. In my opinion, before adopting any open source software, build the capability to deal with the inconsistency bundled in the open source software. 2. I would avoid involving external consultants for 2 reasons.      a. I am not sure, they would bring necessary expertise on to table      b. I fear that there would be little ownership, they will not see big picture of my business (neither I am interested to share it all) 3. Alternative to that is to build the tea...

Secure your application on cloud

Handling sensitive data Define sensitive data for your application. Classify as sensitive data and confidential data. Sensitive data is something like password, credit card account number, something that you should not compromise at all. Confidential data could be your customer’s health record, something that requires your permission before its usage. So, you need to define sensitive data in the context of your application. There are many ways to protect the sensitive data in transit; the easiest way is to use SSL. This is nothing different than handling sensitive data in any traditional application.   However, make sure you apply this rule while designing your application for cloud deployment. Alternatively, you can encrypt the sensitive data and transport. Be noted that any kind of protection you design, will have implications on performance. However this is ignorable considering the nature of sensitive data. If you just want to protect your data from being tampered du...

How do you protect your web server resources? Use signed URLs

Illustration: Say, you have public URL to access abc.mp4. http://mydomain.com/abc.mp4 . And it is made available under pay per download subscription. This is a public URL and anybody can access, but there is a business model around it, which is ‘Pay per download’. This is a revenue leakage if everyone is able to download the asset. How should you make it available for download, but only for one download? You want this URL to be invalid after one usage. Answer: Use signed URLs. Signed URLs are usually short lived URLs. Servers are designed to deny access after the expiry of such URLs. It is also possible to specify additional information along with Signed URL, usually will be additional information is determined by the server in focus. How does it work? Continuing from the illustration, I define a policy. Policy is nothing but information that your client application will be able to communicate with server application so that server can decide the nature of access t...