Architecture – Understanding The Criteria – IV

Eclipse 3.3 in Ubuntu 7.

Image via Wikipedia

This is the 4th post in the series Architecture – Understanding The Criteria

Agile or Agility:

Is your architecture agile? Yes, it is, it can do sit-ups, bend-downs, push-ups and cartwheels. Is that agile enough for you? Oops, that sounds like its flexible!

What does agility really mean, in this context? Agility implies meeting today’s requirements and being ready or able to take on tomorrow’s requirements i.e. being able to respond quickly to unexpected and/or unknown change.

What are the components that make up an agile architecture?

Process and data modeling

Image via Wikipedia

Flexibility:

Flexibility is key to being agile. The ability to plug and play components as features can be classified as being part of an agile architecture. The ability to generically interface with components and features and extend the existing functionality is being flexible.

Extensibility:

The ability to extend the current functionality of the system either through plug and play features that cater to users who might want to use your system, in unanticipated and unforeseen ways and applications is definitely a must requirement for an agile architecture. The Eclipse platform is built on such an architecture.

Reusability:

The ability to not have to reinvent the wheel every time your customer comes up with new requirements and reuse existing components and/or code is at the core of reusability.

Integrable:

Components , whether COTS components or custom-built to specifications have to be integrable. The ability to integrate and integrate quickly, is what can give a firm its competitive edge.

Subsetability:

Much as we would like to see the Big Bang theory at work i.e. at first there was nothing and there is this huge humongous piece of software that is the silver bullet that all software firms have been dreaming of, the truth is that the ability to break software into smaller pieces that both users and developers can wrap their intellect around makes for simpler development practices. It also allows for visibility into the progress of software development with users and customers having a chance to interact with the subset of product features developed. This also ensures continuous feedback and reduces the risk of the software being discarded as being unusable. This also makes for a reduced need for training on the system , with expert users coming from the user interaction team. In addition, for riskier projects, where new technology is being explored, this brings to the fore exploring of real options (ROV) where make or discard decisions are made at every stage of the development process. Also, EVA (Economic Value Added)  can be distributed over components and stages thus providing financial numbers to the fiscally inclined namely the project sponsors.

Three software development patterns mashed tog...

Image via Wikipedia

Modifiability:

The ability to modify code or a system is usually confined to the implementation of the modules. The interfaces are changed less frequently (because of the high impact on testing especially integration testing) thus demanding rigor while defining them. But the modifiability of a system has a direct impact on its maintainability. This is especially important since most of IT spend i.e. 75-80% is towards maintenance of existing IT systems and just 20-25% is for new development. New development is where you create value for the enterprise.The ability of take byte-sized chunks out of maintenance costs will have the CFO kissing you rapturously, given you can demonstrate the value unlocked in cost savings. Anything that reduces TCO (Total Cost of Ownership) will get you a thumbs up from your CFO!

Decoupled or Loosely Coupled:

The ability to reduce dependencies between different components or systems is what makes for a loosely coupled system or decoupled architecture. Decoupling is achieved by parameterization and/or configuration either through files or database parameters. Definition of generic interfaces is also another way of achieving decoupling. Asynchronous systems built using message based architectures and/or a simulated messaging system using database tables is also another standard way of decoupling your system architecture. This also contributes to reliability.

That’s all for now, folks!

Have a great day!

Share this post :

Advertisements

Cloud Computing in 140 Characters or Less

Cloud computing is outsourcing your computing requirements on demand allowing agile response to ever changing business needs.

What’s your definition? In 140 characters or less!

Blogged with the Flock Browser
Enhanced by Zemanta

T-Commerce – Teeing Off

A list of countries with IPTV availability (in...

Image via Wikipedia

Written in 2007, the introduction to a biz plan for a T-commerce solutions provider.

1 Introduction

Buy Interactive has a vision of bringing online retailing into the drawing room of millions of television viewers via its innovative use of technology. The goal is to integrate the converging technologies of media, the internet, the wireless and retailing to facilitate the extension of e-commerce to t-commerce & m-commerce.

1.1 Objective

The objective of this business plan is to outline a strategy for an interactive solutions software company to target the emerging market for interactive television with a specific focus on interactive shopping as the application of technology with the existing Internet infrastructure as the communication backbone. The convergence of media, the Internet and online retailing is the hub of this identified niche in the content management software industry. Further aspects to be explored are an extension of online advertising and promotions to this targeted market segment.

.2 The Organization

The company, Buy Interactive, is a software products company with a focus on developing solutions for interactive/IP television. The crux of the software solutions are the set-top box, the software stack on the box and a broadband internet connection. Current applications of interactive/IP television are mostly sports-casting, picture-in-picture, video -on-demand, email, interactive games, & information portals; these have limited interactivity. Buy Interactive intends to focus on leveraging existing online retailers and their offerings to bring them to your fingertips.

1.3 The Service

The service offered by Buy Interactive is a unique shopping experience for the couch potato; the not-so-internet-savvy user, the one who is more comfortable with traditional media such as the television & video. No more time-wasting spent on the internet searching for deals; the best deals are brought to you to your finger-tips for use via the ‘power-pad’.

The business model also provides for advertising revenue to be collected by the cable & telephone networks based on the pay-per-click, pay-per-lead and pay-per-sale.

1.4 The Market

1.4.1 Geographic Market

The scope of this project proposal is to be limited to the geographic area of Cyprus with potential users CYTA and PrimeTel. The software will be provided as private label allowing the licensors to customize the look and feel of the software and use a consistent interface. Branding can be a combination of the online retailer and/or the operator.

1.4.2 Current Usage

CYTA MiVision market share among residential broadband users was about 10% when it was first introduced in July 2004. PrimeTel and its competing TriplePlay [includes ADSL 2+] service is currently aiming for a market share of 10-15% of IPTV subscribers. CYTA MiVision currently has 23,000 subscribers to IPTV with growth in subscriptions ranging from 500 to 1000 subscribers per month. PrimeTel, on the other hand, have new customers at the rate of 2000 per month. CYTA MiVision plan to introduce 2 new services soon, namely nPVR and Time-Shift TV. CYTA MiVision’s contract with Amino for STB’s specifies that orders (unit contract price) are placed for STBs based on demand, as the need arises. The price for each STB to the customer is 50 CYP , a one-off price. PrimeTel’s suppliers are Kreatel Communications, a recent acquisition by Motorola. STBs are currently being offered free by Prime Tel to new customers, mirroring a trend in most IPTV providers, to subsidize the STB in anticipation of selling value-added services and recovering the initial cost from the service revenues. Both Amino and Kreatel Communications STB devices both run on the LINUX operating system.

1.4.3 Growth Potential

Broadband usage in Cyprus at the end of the first quarter of year 2006 was 12.1% from 4.1% in 2005. 46% of households have internet access from home. Internet, mail order & telephone sales for the first half of 2007 show a jump in spending from £8.83 million for the whole of 2006 to £25.4 million.

This subscriber base has experienced increasing growth over the past 3 years, from 2004 to 2006, and the potential to convert these to IPTV customers increases as the broadband subscriber base increases. The other way to drive growth is to use the IPTV offerings to get television viewers (99% of the Cypriot population own a television) to switch over with a less intimidating offering, especially for non-computer owners (almost 50% of the population). Once a tipping point for this service is reached, growth will be exponential. Signs of this happening in the broadband market are evident. Extrapolating to IPTV and from there to Buy Interactive’s products is how we predict growth for our products.

IPTV in India
IPTV, in India, is currently offered by MTNL in Mumbai and BSNL in Pune, Kolkata and Bangalore.Other companies with plans to rollout IPTV Triple Play offerings in the near future include Reliance InfoComm and Bharti Airtel.
The PSUs

MTNL were the first to launch IPTV in India, namely in Mumbai and New Delhi in October 2006.

Subscribers now number less than 1,000 for MTNL, but the company is hoping for a high conversion rate as broadband connections grow to a target of 500,000 each in Mumbai and Delhi.Currently, MTNL has 225,000 broadband lines out of a total of 4.5 million fixed line subscribers in the two cities. To enable transport of high-density video content, MTNL is using compression technologies that can zip as much as 3 megabits per second.

Currently, a subscriber has to pay a lifetime payment of Rs 3,500 (approximately 87 USD) [Prices have dropped to Rs. 1000 approx. 25 USD for current new subscribers] for a set-top box, and a monthly rental of 120 rupees for 52 channels in Delhi. As volumes grow, it is expected that STBs will be made available free of cost. The service of course is dependent on the customer already being a broadband internet subscriber with MTNL. Bundling of services such as Internet connection and IPTV are not offered as yet.

MTNL has increased the accessibility of IPTV in a 3 km radius from each telephone exchange, from the initial 800 metres each, and plans to start rolling out fibre optic cables that will reach 20 km from the nearest exchange. MTNL has invested $120 per subscriber to enable the IPTV service, and is betting on instant interactivity to view desired programmes and convenience of viewing to be the distinguishing features.

BSNL, the other large public communications company with most of its subscribers in the Tier II cities & towns, envisaged a “quantum jump” in broadband penetration by issuing around five million new connections over the next few months. These would include an estimated three million broadband connections across 1,000 cities and another two million connections in the rural segments. Currently, 1.15 million subscribers used BSNL’s DataOne, a 40 per cent share of the broadband segment of 2.5 million subscribers.[As of April 2007 India had 2.43 million broadband subscribers, by April 2008 it is expected to rise to 4.21 million. India has around 65 million cable and satellite homes. If even 10 per cent take IPTV then 6.5 million IPTV subscriber base is not a small one].This is projected to grow to 20 million by 2010 according to TRAI.

PricewaterhouseCoopers, on the other hand, says that while the number of TV households in India is expected to grow to 130 million by 2012, DTH will account for less than a tenth of this number and IPTV less than a hundredth.

Bharat Sanchar Nigam Ltd (BSNL) is conducting a feasibility study to launch broadband multiplay service, including voice, video and Internet protocol television (IPTV). The service, to be offered in 789 cities across the country, would be available at an eight megabites per second (MBPS) speed connectivity, instead of 2MBPS.

Cable operators such as Hathway are expected to enter this market as well. Current efforts to digitize their network and then move into the IPTV space with Triple Play offerings.

Further competition to Telco IPTV providers are expected from Tata Sky and Dish TV, two DTH players currently consolidating market share.

Reliance Communications & Microsoft have signed a 8 year contract to supply IPTV services. The world’s biggest software maker is expected to earn $500 million, or Rs1,965 crore, based on a revenue-sharing formula in the contract as part of license fees for its software. Reliance Communications will use Microsoft’s MediaRoom IPTV platform, a deployment that Microsoft has valued at about $500 million. The carrier appears poised to invest as much as $1 billion on its IPTV project.

The Indian Context

Over 50% of India’s telephony infrastructure can support IPTV ,which for a developing country is very impressive.

Global IPTV revenue is expected to touch $17 billion by 2010. Smooth billing of services is crucial to ensure consumer satisfaction. The bundling of telephony, internet access and television channels makes it necessary to provide a single billing facility to the users. Software that provides this as well as integration of discount schemes is key to making sure that transition is smooth and hassle-free.

At IBE 2007, held in Mumbai between 25 and 27 October, it was predicted that there will be one million IPTV subscribers in India by 2011.

Mobile Telephony & IPTV

Besides the use of telephone and cable networks, Reliance Communications Ltd. , Bharti Airtel and BSNL are experimenting with WiMax wireless technologies to deliver IPTV services to consumers via their existing wireless networks. Government regulations have been eased to facilitate increased bandwidth; this coupled with better compression techniques, that already deliver content to mobile phones, should enable IPTV services via wireless networks for the Indian consumer. The consumer is thus faced with a multitude of choices from which a bouquet of services may be chosen. Thus, a congruence of choices implies convergent services for the end-user.

The regulatory body TRAI is struggling to come to terms with the different vying technologies that can provide these bouquet of services; a rapid overhaul of the existing laws & regulations is called for.

Revenue Sharing Concerns

The biggest fear of content firms when it comes to archiving of their programmes, is piracy and proper revenue-sharing. It is essential that the operator, whether it is the cable-industry or the telecom operator, shares the correct figures about the number of people who watch it and gives the right share of revenue to them. Else the question remains as to why should the content firm should provide its programming to be played as re-runs.

1.5 The Strategy

Competitive positioning strategy is to position Buy Interactive as being a total customer solutions (TCS) provider to IPTV providers; the initial focus is to be the best available product and move towards offering customized solutions, consultancy, training and maintenance services to our customers. The strategy model is based on the Delta framework with specific reference to using technology to provide a competitive advantage. System Lock In(SLI) would be an ideal situation; however, we envisage regulatory and customer resistance/customer sophistication as hurdles to any move in that direction. Key to capturing value via our revenue model is the achievement of critical mass in our complementors markets; we hope to ride the network effects of high market share achieved by our partners/customers. Our aim is customer’s mind-share.

1.6 The Business

The business is to provide a complete suite of software services packaged to allow the cable & DSL providers, primarily to enable t-commerce and secondarily the ability to create advertising content tailored by demographics, location & program content. The interactive/IPTV providers are the customers for the packaged products with Buy Interactive providing installation, consultation, customization and maintenance services, thus providing a Total Customer Solution.

1.7 The Mission

Our mission is to provide state-of-the-art interactive software solutions for the IPTV platform, to provide our customers a competitive edge by the right use of technology to meet their business needs and serve their customers better.

Interactive solutions at your finger-tips”

1.8 Key Success Factors

  • Total Customer Solution Provider

  • Customer Satisfaction & Long-Term Relationships

  • Strong Management Team with Key Technical Personnel

1.9 Customers/Complementors/Alliances

Our core targeted customers are to be the IPTV providers, who would use our products to track & report advertising views, lead statistics, and conversion to sales of advertised products. We also envisage a market for content creation software that would be used by content programming companies, that can synchronize advertised products with the programming content. Direct selling channels/home shopping networks such as QVC, HSN (QVC & HSN already have interactive TV shopping applications) and Shop@Home TV is another customer avenue to be explored. The business model rests on the ability to form strong strategic alliances with online e-tailers to enable their offerings for IPTV. The ability to get strong branded e-tailers to buy in early is critical to the success of the business. The other option is to build a strong local conglomerate of e-tailers and converge their services and products via our software service. This would however require an additional investment in time, capital and training.

1.10 Service/Product Delivery

Delivery of our products would be done by a team of software professionals, that include system administrator, an account manager and a software developer for trouble-shooting issues. Customization of requirements would have to be signed off by the customer and the account manager, after feasibility studies in consultancy with product managers and software architects is completed. Schedules & time-tables for different mile-stones of product delivery are to be agreed on with the customer. Provisions for staging the software and pilot deployments are other important aspects that will have to be considered. All these costs are to be borne by the customer with clauses inserted enabling the customer to pull out if necessary at any stage. Clauses to compensate for new requirements , either overlooked , inadvertent or caused by new regulations will be part & parcel of the contracts. These agreements would be drafted in consultation with our retained lawyers; special provisions to protect our intellectual property (IP) would also be factored in.

1.11 Product/R&D

1.11.1 Base Products & Features

The E-Tailer Enabler

The Enabler is the core product offered by Buy Interactive. The Enabler brings the online retailer to your television set leveraging the use of web-services, HTTP/HTTPS, SSL and the STB stack of software services to provide a much more user-friendly experience for the television viewer. The Enabler has 2 components, the Controller hosted at the operator’s central site and the on-the-fly Intelligent Renderer of the streamed/pulled deals available currently at the online retailer selected. The currently watched television show’s content descriptor tags are scanned for relevant key-words and matched against a local data-base of products and categories. These are then used to pull deals from the online retailer via their provided Web-service APIs and these can be rendered as the user wishes either in a full-screen window or a smaller picture-in-picture (PIP) window. The initial version would leverage the embedded browser components and create HTML pages on the fly to be viewed in the STB browser for speed-to-market. A further development would be a customized viewer with much more interactivity and better graphics; this could be a driver for customer lock-in by the use of a richer user interface.

The Analyzer/Tracker

The Analyzer/Tracker tracks the user clicks per displayed product/advertisement, the no. of views, and conversion to actual sales. This data is used by the operator to bill the e-tailer using a weighted formula based on click count, time spent on related views and translated sales. A percentage of this revenue would be royalty fees accruing to Buy Interactive.

The Distributor

The Distributor component deals with the distribution of advertising and programming related content to the STBs. Premeditated content such as graphics, video & audio can be distributed to the STBs to be scheduled to play along with scheduled programs, ads & events. The pull process is then limited to the prices and deals being offered for the products. The distributing process is transparent to the television viewer; content can be cached at servers located closer to the area to reduce network latency similar to the process used for Video-On-Demand (VOD). This meta-data is to be rendered by the Intelligent Renderer and synced along with the program & ad content.

The Service Updater

The Service Updater component updates the software stack of services on the STB. The Service Updater component seeks to ensure that the STB is autonomic, I.e. It is self-diagnosing and can fix itself except in the most rare circumstances. The STB can communicate with the Updater service and intimate it as to the current status of the STB, it’s content as well as the playout of content, if necessary. The Service Update STB component can check for updates if available and download them to be applied either immediately or at a programmed time or on shutdown or start-up. Care is taken to ensure minimal disruption of the viewer’s schedule.

The Shopping Cart

The STB services platform will include a shopping cart functionality that is owned by the service operator. This can be configured to override the e- tailer’s shopping cart or used for the operator’s promoted products such as telephone & cable equipment to be purchased.

The Billing System (BS)

The Billing System provides the television viewer statements of their online purchasing activity sent out to them either by mail or e-mail.

It also has B2B functionality to bill the e-tailer for service provided. All this is enabled via a server side billing system that is scalable to meet the growing subscriber base. This would integrate seamlessly with the Subscriber Management System to provide a complete customer management system.

The Subscriber Management System (SMS)

The Subscriber Management System would integrate with the operator’s existing customer database and would add additional tables to provide for additional customer specific data needed for the SMS & BS to function.

SME E-commerce Server

For small merchants and local retailers, the SME E-commerce server provides a service where they can hawk their goods and services. This will be provided to local businesses as a SAAS application that can be accessed via their own customer accounts, so that they can upload details of their goods and service including pricing, special discounts, promotions and sales. The E- commerce server is an Open Source based application server, that will have a stack of web-services provided on top of the existing application to enable these to be pulled to the STB to be rendered. An instance of this Application Server will also serve as a proof-of-concept to be shown to prospective clients.

Data-warehousing (DW)

The total suite of offerings would be incomplete without being able to facilitate data- warehousing to enable managerial decisions for the operator. The initial implementation would use an off-the-shelf implementation with data warehousing specialists and business analysts to work together to identify the various data-marts & dimensions to be stored in the data-warehousing system. This differs from the data-warehousing solutions currently implemented & used by both the e-tailer & the service operator.

1.11.2 Add-Ons & Extended Product Lines

The Content Creator

The Content Creator software allows the user to create tailored content using graphics, audio, video and animation to produce MPEG2 and MPEG4 content.

The Content Editor

The Content Editor allows the user to edit existing content mostly to create or edit additional tags to describe the content and add relevant key words and date information.

E-auction Server

The E-Auction server is an application server that incorporates all the features of an e-commerce server plus the ability to store various bids and dynamic pricing of goods and services. This feature will be an enhancement of the SME e-commerce server and will include features that enable tracking bids , closures. Merchants will also have the facility to upload their product offerings and latest deals.

1.11.3 Technology to be used

LINUX OS for embedded devices/Windows CE

Java2 Micro Edition(J2ME) / .NET platform

Java XLETs/Windows API

Proprietary Extension/Set-top Box APIs

SOAP web-services

RESTful web-services

HTTP/HTTPS/SSL

Embedded Browser

RFID for single-sign on

E-commerce Application Server (Open Source)

WebServices API for E-commerce Application Server

Your comments here!

Reblog this post [with Zemanta]

 

Share this post :

 

Web Services, SOA, BPM, and Cloud Computing – VI

Elements of a Service Oriented Architecture

Image via Wikipedia

Before we define SOA (Service Oriented Architecture), let us first discuss what SOA is about.

SOA is about loose coupling, SOA is about interoperability, SOA is about flexibility, SOA is about extensibility, SOA is about agility,SOA can be about ad-hocism or rather the appearance of ad-hocism! (We’re talking mash-ups here!)

SOA is about abstraction,SOA is about platform independence,SOA is about simplicity.

SOA is all about reuse, granularity, modularity, composability, componentization and interoperability.

SOA is about standards.

SOA is about encapsulation.

SOA is about contracts.

SOA is about autonomy.

SOA is about optimization.

SOA is about relevance.

SOA is about discoverability.

SOA is about statelessness

SOA is about enterprise application integration or being integrable,

SOA is about strategy,

SOA is about planning,

SOA is about best practices

and SOA is about governance.

So what is SOA?

A service-oriented architecture is essentially a collection of services. These services communicate with each other. The communication can involve either simple data passing or it could involve two or more services coordinating some activity. Some means of connecting services to each other is needed.

Reblog this post [with Zemanta]

Architecture – Understanding the criteria – I

Strategy is about trade-offs. So says Michael Porter.

Architecture , especially enterprise architecture, is also about trade-offs. In fact, you could say architecture is a technological implementation of strategy or maybe a form of technology strategy. This, of course, differs from strategy for a technological firm which is something else altogether.

To understand strategy , you first have to ask the question why? The whys lead on to the other questions and their answers.

This post looks at criteria of good software architecture. I will seek to explain the terms together with why they are important components of a good architectural system.

Functionality:

Functionality implies whether the system does what its supposed to do. Is it fit for purpose? Does it meet the user requirements outlined earlier? No amount of technical wizardry can save a project or architecture if the system built does not meet the requirements captured earlier. Hence it always better to spend more time capturing the requirements, talking with the project sponsor(s), the people who will be using the system, maybe even build prototypes so that ambiguity is reduced and/or eliminated. Perhaps you, as a SME (Subject Matter Expert), would have a better idea of the system required by the customer. “Since you’re not clear what you want , may I try and show you? “ In this case, the customer may not always be right! But on the other hand, do not treat your customer as a Big Moose! Duh! Good requirements capture is a prerequisite for good design , and finally good implementation. Functionality is meeting the user requirements and quality is exceeding them!

Scalability:
When it comes to evaluating a solution, you may be asked the question “ That’s fine; the system does what’s expected of it. But does it scale?”

A scalable solution is able to accommodate an increase in load i.e. an increase in the number of users of the system without a significant degradation in performance. What this means is can the system accommodate a larger no. of users than envisaged while building the system. When we talk about an architecture being scalable, we encounter 2 types of scalability.

The first is vertical scaling or scaling up. This is the easiest because it involves moving the existing system to better, faster hardware with faster processors and more memory or increasing the no. of processes supporting the application.

The second is horizontal scaling or scaling out. Scaling out is having the system available on multiple machines and is usually accomplished by sharing the increased load across multiple homogenous or in some cases heterogeneous hardware. A load balancer component is a critical part of such an architecture. The load balancer could be built in software but in most cases is a specialized piece of hardware.

Scaling out can be achieved over layered systems as well. Here, you can have multiple web servers, multiple application servers and finally multiple database partitions and/or master-slave databases.

Scalability is usually looked at from the perspective of load balancing.

But there are other dimensions of scalable architectures.

Is the system geographically scalable? Can it serve users across different geographical locations?  Is it a true 24 * 7 system? How available is it? How much downtime will the system have? What percentile?

Is the system administratively scalable? Can you have the same distributed system serve multiple organizations? An application like SalesForce.com is an example of an administratively scaled system.

Is the system functionally scalable? How easy is it to add new functionality without breaking the existing architecture/system?

It is a principle of engineering that a bridge is not built to take the average load / traffic but it is built to take the maximum or maximum times a factor greater than 1. The same applies here!

Westminster Bridge,

 

References: http://en.wikipedia.org/wiki/Scalability

http://searchdatacenter.techtarget.com/sDefinition/0,,sid80_gci212940,00.html

http://www.linfo.org/scalable.html

Performance:

Performance is one of the more important non-functional requirements expected from a large system, especially a transactional system. Here it is important that certain transactions ,such as in an ATM system, have a reliable time scale within which they are performed. Anything less than that is usually unacceptable to the user and consequently the customer/sponsor paying for the system.

Performance can be measured at different levels. It may be measured as the mean time for a transaction, it can also be measured as the maximum time expected from a transaction. Why is this important?

For example, consider a customer service system. The CSRs have to respond to customers; they are usually allocated a certain quota of calls which they have to attend to in an hour. But if they have a sluggish system to work with , the system becomes a drawback and they may resort to gaming or finding some workaround and leave the customer with a feeling of lack of good customer service through no fault of their own. Hence, performance issues are very much a part of requirements to be signed off on delivery of a system. Most contracts include a SLA that focuses on the performance aspects of the system. It’s just not “ is it fit for purpose?”; Is it fit for use? Can the customer use it over and over again without any significant degradation of performance and time? A software system , unlike humans, are built for those heavy loads. They are machines, after all!

To quote Wikipedia.org:

“Computer performance metrics include availability, response time, channel capacity, latency, completion time, service time, bandwidth, throughput, relative efficiency, scalability, performance per watt, compression ratio, Instruction path length and speed up.”

Performance tuning strategies include code optimization, load balancing, caching strategy, and distributed computing, and self-tuning.

Code optimization usually indicates improvements in the algorithms used to perform a certain task. It could also mean devising a new algorithm. It might even involve some sort of hard-coding or even assembly language programming to deliver optimized performance. This is a highly specialized activity and requires a high degree of skill and knowledge.

Caching strategy is used to reduce latency. Frequently used items are stored in high-speed access memory so that they are brought closer to the point of use.

Load balancing is another strategy to spread load over multiple distributed systems so that no single layer or system becomes a bottleneck.

Distributed systems spread the load over multiple processors, systems. It usually relies on multi-tasking by dividing a job into discrete tasks that can be performed independently and then aggregate the results to be delivered to the user.

Finally self-tuning systems can take care of themselves. These are also known as autonomic systems i.e. they are self-diagnosing and exhibit adaptive behavior.

References: http://en.wikipedia.org/wiki/Performance_tuning

http://en.wikipedia.org/wiki/Computer_performance

Availability:

When we talk about availability with reference to computer systems/services, what we are referring to is high availability. As the term suggests, high availability is the expectation that the system / application /service is available at all times or almost all the time. Thus, we expect the system to be down very rarely i.e. downtime is minimized or is negligible. High availability suggests a highly reliable system.

There are 2 kinds of downtime: planned and unplanned. Planned downtime allows us to keep the system still available by using redundancy , where applicable or phased out rolling maintenance and system updates. Available systems try and reduce single points of failure (SPOFs) by adding redundancy.

A service level agreement (SLA) specifies the availability percentage usually in no. of hours over a period of time.

ITIL V3 Handbook says this about availability: “requires a design that considers the elimination of Single Points of Failure (SPOFs) and/or the provision of alternative components to provide minimal disruption to the business operation should an IT component failure occur. High availability solutions make use of techniques such as Fault Tolerance, resilience and fast recovery to reduce the number of incidents, and the impact of incidents

http://en.wikipedia.org/wiki/High_availability

To be continued____

Good day!

Web Services, SOA, BPM, and Cloud Computing – IV

Before we continue with web services and go into the gory details, let’s first identify WHY would we need web services.

Without the WHY, the HOWs, WHENs, WHEREs, HOW MUCHs, WHATs, BY WHOM, WHOs is pretty much redundant as a good project manager or better still a project sponsor will tell you. The WHY gives direction.. .

The answers to the other questions, pave the way.

Let’s just consider me and a hypothetical situation. It is the 14th of February, Valentine’s day next week. And though I want to give my girlfriend and me, an extra special time, it will be difficult to make arrangements for making that day a memorable one. Travelling will be difficult ; I do not have my own transport. Making dinner reservations and buying show tickets to the latest hit film or the hit musical that’s just come into town in person is almost impossible. How wonderful would it be if I could have a concierge or better still a personal assistant who would do all that for me! And either for a minute transaction fee or for nothing!

Now, I could log on to the car-rental site like Hertz and or the taxi hire ( say Meru) web-site and arrange for transport. Or call them up! And then log on to a web-site like BookMyShow.com and book the tickets for the film I would like to see. But these would have to be done individually and co-ordinating the bookings is a hassle and its my hassle!

But what if there was web-site that would do this, an aggregator of services? A mash-up , if you like. It would offer me a bouquet of services, I enter my requirements and let the service provider do the work.

The web-site does the job of orchestrating and choreographing my requests, and comes up with my dream date! For a small fee!

Would this make for a good bizness model? If you could extend this as a service to firms, that would include booking train, bus and plane tickets, yes, the volumes add up and revenue can be significant.

Though the earlier scenario is so much more interesting and romantic!

And though the WHY is short and pithy, it is so much more potent!

Have a good day!

Reblog this post [with Zemanta]

Share this post :

Web Services, SOA, BPM, and Cloud Computing – III

Still with web services , and now let’s talk about Discovery of services.

Discovery, as in the 2nd D in UDDI (Universal Description, Discovery and Integration) and not the Discovery channel, though the latter is probably so much more entertaining.

1> UDDI is the abbreviated form of Universal Description, Discovery and Integration though a lot of people also refer to it as Universal Dynamic Discovery and Invocation , which to my mind , seems a better disambiguation of the abbreviation.

UDDI is basically a directory of services offered by various service providers or organizations. UDDI can be of 2 kinds, public and private. The public UDDI directories list services by organizations, and there are various classifications of the organizations, that could be used to identify an appropriate service based on business type.

The private UDDI registries are usually internal to a large organization, or could be B2B or industry registries. These are usually private and are not accessible to all.

The idea behind having UDDI registries is that systems that use these registries could be self-organizing i.e they discover services as they are added and can thus add to their capabilities. This is kind of a precursor to a Semantic Web, though it is not quite the same.That is, if a new business entity added a similar service to the one you were currently using , your system would discover this service and add it to its list of alternate services that it could use. It could thus create B2B partnerships on the fly. Now this could still happen based on some criteria but in actuality, when other organizations use services provided by service providers, a contract and a SLA (Service Level Agreement) is to be first agreed upon before the services are used. You would not trust your critical system with a service that could be proved unreliable.

Also, your system rather than create dynamic relationships with all services that provide the functionality needed would rather have 2 or 3 preferred providers which would be used either in a round-robin manner or in some priority order. These would be based either on metered usage or an agreement as to the no. of transactions to be used per month.

Also, there are issues of tracking usage , which needs the service user to first be authenticated and then authorised to use the service.

Though these could be automated , there are practical considerations that still require human judgment to be exercised.

One of the major criteria for choosing a service provider would be cost, but it is not the sole criteria. Quality of service (QOS) is another major criteria.

UDDI is a centralised way of accessing web services; your system accesses the registry , looks up the required organization/industry and chooses the service it requires. This is a one-time process; the WSDL document for the service is located; the service is bound to and cached by your system so that the computational and network cost of accessing the registry is not incurred again. In most cases, you might even bypass the UDDI as you might already be provided the WSDL location by the service provider.

Though UDDI is supported by IBM, IBM also supports  an alternate standard for discovering web services, which seems much simpler and is , in the bargain, a distributed system.

2> WSIL (Web Services Inspection Language)

Web Services Inspection Language (WSIL) is a service discovery mechanism that is an alternative to UDDI as well as complementary to UDDI. With WSIL, you go directly to the source of the service i.e. the service provider itself , a sort of , getting it directly from the horse’s mouth.

Let me draw an analogy here. How many of you are familiar with RSS (Really Simple Syndication)? If you are a blog writer or reader, you will be familiar with the RSS button on the index page. You just point an RSS reader to it and voila!, you are now subscribed to any new articles or posts on the blog or web-site.

WSIL operates in a similar manner. It requires that the root of the web-site have a meta-tag that has a pointer or link to a WSIL document that describes a list of services provided by the service provider , in this case, the web-site.

Why is it complementary? It is much easier to update a document provided on your web-site with the list of all the service available for consumption than to update an UDDI registry. The UDDI registry can then be populated automatically using a search and identify WSIL documents program. There would be some lag in synchronicity but life gets much simpler. Simplicity is key.

In both of the above discovery mechanisms, the WSDL documents are not stored ; just a reference to them.

References: Wikipedia, http://publib.boulder.ibm.com/infocenter/radhelp/ (search for WSIL)

J2EE™ Web Services

By Richard Monson-Haefel

Note: WSIL is a standard proposed by Microsoft and IBM.

Addendum: Microsoft also offers a proprietary discovery mechanism called DISCO that follows a very similar approach to WSIL. See http://msdn.microsoft.com/en-us/magazine/cc302073.aspx

Reblog this post [with Zemanta]

Share this post :

Web Services, SOA, BPM, and Cloud Computing – II

Talking about web services again, I would classify web-services as the following 3 types:

1> RPC type : Here the web-services, when their payload is examined, follow an RPC style; i.e they appear to be a pair of method and return calls. For those who are familiar with the RPC coding methods , in existence, before CORBA, XML-RPC would appear to be very similar.

2> Document style: Here the web-services, or rather their payload, follow a document style. That is, the payload is an XML document, and the response is another XML document. The document is defined by the user i.e. either the programmer, the architect or it could also be some standard format.

XML-RPC evolved into SOAP; the SOAP protocol supports the RPC and Document style of web-services.

3> RESTful services: RESTful (Representational State Transfer) web services follow the CRUD methodology.

Create

Retrieve/Read

Update

Delete

These draw inspiration from the database methodology or rather the relational database SQL DML (Data Manipulation Language) statements.

The SQL mappings for CRUD in a relational database are as follows:

Create
INSERT

Read (Retrieve)
SELECT

Update
UPDATE

Delete (Destroy)
DELETE

The key principle behind REST is to look at everything as a resource, which can be uniquely identified.

REST uses the HTTP protocol and hence each resource is uniquely identified by an URI or Uniform Resource Identifier.

Amazon.com’s technical team were one of the pioneers of the RESTful approach towards web-services. And to their credit, it is the simpler approach and more easily understandable. This style of web-service programming was and is the backbone of their shopping site. It is also the architectural style used for their cloud computing offerings.

What the RESTful architecture using the HTTP protocol does is map HTTP methods to the CRUD style.

HTTP GET – retrieves a resource or rather its representation. Very simply a GET call to the URI, returns the resource and its contents.

HTTP PUT – the HTTP PUT method – as the name suggests , this maps to the CREATE i.e either a new resource is created or an existing resource is replaced , if the same identifier is used.

HTTP POST – is used to modify or update an existing resource. This is usually a partial update. It may also be used to create a sub-resource.

HTTP DELETE – the simplest – deletes the resource.

References: Wikipedia. http://xmlrpc.com,http://www.infoq.com/articles/designing-restful-http-apps-roth

PS: CRUD is sometimes also referred to as CRUDS where the S stands for Search. Though you could just classify it as a subset of R – the retrieve.

Reblog this post [with Zemanta]

Share this post :

Web Services, SOA, BPM, and Cloud Computing – I

The field of IT technology is an ever-changing one. Just when you think that you are on the cusp of grasping the next big thing, you find that its no longer the next big thing. It’s the next big thing , that could have been!

Let’s just talk about a few terms that you might have heard about or read about – the so-called game-changers, the panacea to all IT’s problems.

The most commonly heard terms bandied around are : SOA (Service Oriented Architecture), cloud computing and BPM (Business Process Modeling).

If you are aware of these terms and believe that you can drop them around in casual conversation around the water cooler, you are part of the ‘in-crowd’ i.e. you kind of know it all.

But how do all these technologies fit in? Are they something quite separate? Or are they all inter-linked? What are the linkages that bind them together?

From a technological stand-point , Web Services Definition Language (WSDL), SOAP (Simple Object Access Protocol) and Universal Description, Discovery and Integration or Universal Dynamic Discovery and Invocation (UDDI) are what forms the basic building blocks for web-services. WSDL is. of course, based on XML, so I do not add XML to this mix.

At the least, these are also the building blocks to building an SOA infrastructure, though SOA is more than just web-services.

There are 2 ways to build a web-service:

1> From the top-down i.e. you enable your existing application’s functionality to be used as a web-service. This is the easiest route and enables reuse of existing functionality.

2> From the bottom-up i.e. you write web-services for wanted/required functionality and then invoke these either directly through clients or from other applications and/or services. You could even expose these services to 3rd party applications.

What is so different about web-services?

Web-services besides allowing for reuse across applications, also accounts for interoperability.

What is interoperability? Interoperability is the ability for applications written for different platforms and in different languages to communicate without loss of semantics and functionality.

The genesis of web-services originated from B2B applications i.e the need for business applications across business entities to communicate with each other. Anyone remember WebMethods?

Prior to web-services, B2B communication did exist but was largely proprietary and non-extensible. EDI was once such methodology. It still exists and works, but is not fashionable anymore.

Share this post :