Web-services, SOA, BPM & Cloud Computing – X

Chromium

Image via Wikipedia

Web-services, SOA, BPM & Cloud Computing – X

No series on cloud computing would be complete without alluding to Google’s audacious attempt at building an OS around the cloud computing paradigm.

Yes, I’m referring to the Google Chrome OS, a spin-off to the Google Chrome browser. The open source versions for the Chrome OS are the Chromium OS and the Chromium Browser respectively.

The Google Chrome OS

The Google Chrome OS is targeted specifically to netbooks, not the primary device of use, but a secondary, portable, lightweight device. The OS is small enough to be loaded on a USB drive and booted from the very same device. Applications on local storage are few and far between and most useful, user applications are based in the cloud. The user interface is minimalist much like the Chrome Browser. Boot time is very quick with Google software engineer Martin Bligh demonstrating a bootup time of four seconds.

Continue reading

Advertisements

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

CRAY-1 (no longer used, of course) displayed i...

Image via Wikipedia

A discussion on web services, SOA, BPM and Cloud Computing would be incomplete without a post on grid computing.

Wikipedia starts their article on grid computing by saying that “Grid computing is the combination of computer resources from multiple administrative domains for a common goal.

So what does this mean?

In the first place, computing is about achieving a piece of work, what the work consists of is irrelevant for the definition.

Grid computing is about achieving or completing a humongous piece of work which if given to a single computer would take an inordinately large amount of time and would also in all probability lock up the CPU cycles of the machine, leading to that notorious reaction ‘My computer froze”.

For people who are maybe not technically minded but are aware of SETI@home (The Search For Extra Terrestrial Intelligence – this is a volunteer computing project that utilizes the unused CPU cycles of volunteer home and work PCs to analyze radio signals emanating from space for signs of some sort of intelligent life out there. This seeks to answer that philosophical question “Are we the only ones out here on Planet Earth? It cannot be – there must be someone out there in the vast reaches of the universe”.

What this implies that each volunteer machine downloads a set of radio signal data, analyses it and sends the results back to the SETI project server. The SETI@home application is a screen-saver to be loaded onto the client machine.

This is what in technical terms is known as CPU scavenging and volunteer computing.

Continue reading

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

Diagram showing overview of cloud computing in...

Image via Wikipedia

A series on cloud computing would not be complete without a post on virtualization.

Now, what is virtualization?

A definition of the term virtualization would go as follows:

Virtualization is technology that
allows application workloads to be
managed independent of host hardware.
Multiple applications can
share a single, physical server.
Workloads can be moved from one
host to another without downtime.
IT infrastructure can be managed
as a pool of resources, rather than
a collection of physical devices.

The ability of a single hardware system to support multiple virtual machines thus optimizing the use of the hardware and thus providing more bang for the buck is the cornerstone of virtualization technology.

Virtualization is about multi-tenancy i.e. the ability to have multiple applications residing on the same infrastructure.

Virtualization is most often implemented on x86 servers as either operating system
(OS) virtualization or hypervisor-based virtual machines. OS virtualization uses
a single instance of an operating system (such as Microsoft® Windows® or
Linux®) with the help of virtualization software, to host a large number of individual
workloads.
The hypervisor approach is completely different. A hypervisor is code shared
among the guest operating systems and the hardware. The guest operating systems
can be various versions of Windows and Linux, and can be mixed and
matched on the same system. (For example, Windows 2000, Windows Vista,
SLES 9 with Xen, and RHEL 5 without Xen can all operate simultaneously,
including standard and enterprise varieties of each, as well as both 32-bit and
64-bit implementations.)
The hypervisor ensures that each operating system instance gets its proper share
of hardware resources and also that activity in one virtual machine (VM), or partition,
does not impact any other partition or the overall system.

Virtualization is about intelligent sharing of computing, resources and storage. Virtualization is about being dynamic with your allocation of resources, computing and storage. It is juggling multiple balls or applications transparently without the complexities becoming evident to the user of the applications.

Virtualization allows you to be flexible with your allocation of resources.It allows for failover, load-balancing, disaster recovery and real-time server maintenance.

The complexity of virtualization needs a single interface from where this infrastructure can be managed.

Virtualization lends itself to reduction in cost i.e. in the spending on hardware and at the same time an increase in productivity of the hardware installed. However, it is not a silver bullet and brings with it complexities that would have been avoided in a non-virtual infrastructure. The need to balance performance needs with maximizing workload is what virtualizing organizations  grapple with.

Virtualization can help you maximize the value of your IT dollars:
● Business agility in changing markets
● Computing resources to meet both current and future needs within the existing
power envelope
● An IT infrastructure that is flexible and can scale with business growth
● Performance that can handle the most demanding applications
● An industry-standard platform architecture
● Intelligent management tools
● Servers with enterprise attributes—regardless of their size or form factor

 

Virtualization can help you improve IT services:
● Rapidly provision new application workloads—cut setup time from days or
weeks to minutes
● Improve IT responsiveness to business needs
● Eliminate planned downtime by moving workloads before hardware
is serviced
● Greatly reduce—even eliminate—unplanned downtime

Virtualization strategy is the backbone of cloud computing solutions. Without virtualization, cloud computing would have a mountain to climb, with virtualization, its the case of going up a hill but appearing to come down a mountain!

Have a great day!

Source: IBM White Paper

Virtualization strategy for mid-sized businesses
April 2009
IBM and VMware virtualization benefits for mid-sized businesses

Quote of the day:
In a time of universal deceit, telling the truth is a revolutionary act. – George Orwell

 

Share this post : Social! MSDN! Technet! Live! Blogmemes!
Buddymark! Complore! Del.icio.us! Del.iri.ous! Digg! Facebook! Reddit! Technorati! Yahoo!

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

Outline of a cloud containing text 'The Cloud'

Image via Wikipedia

What, in heaven, is cloud computing? If you think you already know what cloud computing is about, then this post is not for you. But you can choose to read on, if you like.

The understanding of cloud computing can be as hazy as the term itself.

It seems as though there’s this cloud into which your input disappears and you receive your output , again, via the cloud or that is what all those diagrams depicting cloud computing seem to imply.

Cloud computing seems to be a definitely cloudy term to define the ability to access your applications wherever you go. Cloud computing harnesses or leverages the power of the internet to give you distributed applications that can be accessed from multiple devices (note , it is devices and not multiple computers; multiple devices include multiple computers! Sorry if I sound pedantic!)

Cloud computing definitions include “wherever you go, your applications are”, “the big rental station in the sky.”

The latter because in a multi-tenant cloud computing system, you are in effect sharing resources with other entities or enterprises , all transparent to you and to each other. Hey, what am I saying? Cloud computing is inherently multi-tenant , ask any blogger! But maybe we’re just referring to virtualization, eh? But I am getting ahead of myself here and let’s just start with the definition of cloud computing.

I have defined Cloud Computing elsewhere as:

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

Cloud computing is a service. It is usually classified into 3 kinds:

Software As A Service (SAAS)

Platform As A Service  (PAAS)

and Infrastructure As A Service (IAAS).

Wow, you might say, that’s just fine. You’ve simplified it further for me (sarcastically). Now I’m even more confused!

Software As A Service is exactly that; it is a service that fulfils a certain application need , not locally but in the cloud. To give you an example, WebMail services such as Yahoo! Mail, GMail & Windows Live Mail are the simplest form of software as a service. Yes, webmail has been around for quite some time, you may say. But then its the definitions that are new, not the service itself. You may not remember the term ASP (Application Service Provider). Well , SAAS is just a new term for ASP. At your workplace, you may encounter CRM services such as SalesForce.com and Zoho CRM. These are examples of  SAAS applications offered as cloud offerings. These are a boon to non-profit and SMEs to allow them to ramp up quickly without any major up-front capital expenditure. Another relevant example of SAAS is QuestionPro.com and SurveyMonkey. These are  internet based market research tools for individuals and corporates.

Cloud application services or "Software as a Service (SaaS)" deliver software as a service over the Internet, eliminating the need to install and run the application on the customer’s own computers and simplifying maintenance and support. (Sounds suspiciously like ASP!)

  • Network-based access to, and management of, commercially available (i.e., not custom) software
  • Activities that are managed from central locations rather than at each customer’s site, enabling customers to access applications remotely via the Web
  • Application delivery that typically is closer to a one-to-many model (single instance, multi-tenant architecture) than to a one-to-one model, including architecture, pricing, partnering, and management characteristics
  • Centralized feature updating, which obviates the need for downloadable patches and upgrades.

At the next level, is Platform As A Service, If you are a blogger and have your blogs hosted via a blogging service such as WordPress.com, then you are using a Platform As A Service. WordPress.com , in this case, is the platform provider for you to use the blogging service to create and post content.

Cloud platform services or "Platform as a Service (PaaS)" deliver a computing platform and/or solution stack as a service.It facilitates deployment of applications without the cost and complexity of buying and managing the underlying hardware and software layers.

Finally, there’s IAAS or Infrastructure As A Service. If you decide to host your own web-site or move your blog to a hosting service such as VSNL or Yahoo! Small Business, then you are accessing Infrastructure As A Service, You have access to the infrastructure provided by the hosting service provider and you can install your applications within the constraints of supported programming language, supported database  and storage space provided. Of course, there are the other IAAS providers such as Amazon EC2 and Google App Engine, that you may be more familiar with , if you are technically minded. I chose to give you examples that we are familiar with in our use of the internet.

Cloud infrastructure services or "Infrastructure as a Service (IaaS)" delivers computer infrastructure, typically a platform virtualization environment, as a service. Rather than purchasing servers, software, data center space or network equipment, clients instead buy those resources as a fully outsourced service. The service is typically billed on a utility computing basis and amount of resources consumed (and therefore the cost) will typically reflect the level of activity. It is an evolution of web hosting and virtual private server offerings.[40

Other not so well-known cloud offerings include Network As A Service (NAAS), Storage As A Service and Security As A Service though the third may be considered a subset of Software As A Service.

When cloud computing is mentioned , the related words we hear are cost savings, the ability to provide for dynamic computing needs (via hybrid clouds and/or public clouds) and the efficiencies gained at being able to reallocate vital resources to more productive uses. Cloud computing is also referred to as utility computing since resources in the cloud can now be turned on or off as dictated by our requirements. IT has become a commodity. So how elastic are its demand & supply curves? And I’m not being laconic!

But besides big dollar savings for large firms, it is also about how small firms can gain a competitive edge by being able to focus on delivering value and not worry about large infrastructural investments; applications can be sourced from cloud computing providers – leased may be the term more familiar to cloud computing advocates. The option to bring these applications in-house to private or internal clouds resides with the enterprise depending upon how their funding and inferentially ramp-up progresses. The economics of cloud computing, for SMEs and non-profits, is very compelling indeed.

That’s all for now! You can keep your head in the clouds! And don’t sport a clouded countenance! Just kidding!

Have a great day!

Getting it out there

In an earlier post, I mentioned not writing about blogging!

Well, this post is about just that!

Obviously I would like more people to read my posts, increase my sphere of influence that is!

And how do I get the message out there?

Rely on social networking sites, simple isn’t it?

But then all the people I know do not log on to the same networking sites. Quite similar to how it works in real life, we don’t all go around in the same circles, do we? Not all the time, that is. Would we want to? Don’t we price heterogeneity? If we were all the same, would we network? There is a price to pay for homogeneity, but that is not the theme of this post.

There is also a place and time for homogeneity, as there is a place and time for heterogeneity.

So how do I get my post out to the other networking sites?

For me, LinkedIn, Facebook and more recently Twitter are the 3 main sites to target.

LinkedIn for my professional needs.

Facebook because it has become the most popular social networking site

and Twitter because I believe that it has become the biggest killer app on mobile phones. I do not have the stats to back up that claim though!

This blog is hosted on WordPress and WordPress is a PAAS i.e. Platform As A Service for non-technical (and technical) persona to avoid the hassle of setting up their own blogging web-site. It works like a charm!

But then there’s also Yahoo! 360 , Windows Live, Ning and Orkut , these cannot be ignored either!

Obviously hand-coding links for these sites is a painful and tedious process.

Here’s where technology comes to my aid!

If you sign on your WordPress admin console and go to my the Tab My Blogs , there you can enable feeds for Yahoo! Updates and Twitter using the instructions given. You would of course need to have a Yahoo! and Twitter a/c respectively.

http://en.blog.wordpress.com/2009/10/08/publicize-twitter/

For Facebook, the procedure is slightly different. Facebook features a micro-blogging facility called Notes (Facebook’s answer to Twitter). This allows you to host a blog on Facebook itself or import your existing blog. I chose to do the latter. You may do the same. This automates your posts to Facebook , admittedly with a tolerable lag.

WordPress has now introduced support for Facebook’s Publicize feature. Log in to your WordPress admin , select tab My Blogs and check Facebook to activate publication of posts to your Facebook profile. This automates publicizing posts to your Facebook a/c as well.

You may choose to use Windows LiveWriter , (like I do) to write and post your articles. If you go to Blog –> Edit Blog Settings , you can set up Live Writer to post to Windows Live an update each time you post to your blog. That takes care of your Windows Live updates. Funny how Microsoft integrates so well with its own products. I’m not complaining though!

For LinkedIn, there are a couple of apps, namely the Twitter status imports and a WordPress app, These can be featured on your profile. So LinkedIn is now clued in as well.

Ning has another 3rd party app for WordPress, that allows imports from your specified blog. This will do the trick if you have a profile on Ning.

Orkut has no direct way of inserting your posts. Here, again Twitter comes to the rescue with a 3rd party app that pulls in your Twitter feeds. 3rd party apps are great, aren’t they?

Now with Google Buzz, which integrates directly with your Gmail account and contacts, all you need to do is click on connected sites, enter your user details for your WordPress and Twitter a/cs , and voila!, your posts and tweets are now being buzzed on Google.

I haven’t considered MySpace, Friendster (is it still around?) and WAYN in this post simply because I have discontinued my a/cs on these social networking sites.

So now you know how to! I just love automation!

Have a good day!

This post updated for Ning, Google Buzz and Facebook Publicize.

Enhanced by Zemanta

 

Share this post :

 

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 :