Governance – Corporate,IT & SOA

Depiction of layers of the Service-oriented Ar...

Image via Wikipedia

Corporate governance

Corporate, or enterprise governance, establishes the rules and the manner in
which an enterprise conducts business, based upon its strategy, marketplace,
and principles of doing business. It defines for employees and for business
associates the processes that are used to conduct operations and the manner in
which people interact.
Beginning with the board of directors and extending throughout the organization,
there are many aspects and levels of corporate governance. All aspects of the
business are touched in some manner. Governance is applied to major
functional areas of an organization. Organizations govern their financial assets,
human resources, customer relations, intellectual property portfolio, and their
Information Technology.

Quote of the day:
It is the mark of an educated mind to be able to entertain a thought without accepting it. – Aristotle

Continue reading

Advertisements

Availability

To explain the background of MTBF calculation

Image via Wikipedia

Availability

 

Availability is a measure of the accessibility of a system or application, not including scheduled down-time. It can be measured as a ratio of expected system up-time relative to the total system time, which includes uptime
and recovery time when the system is down.

Even if you’re on the right track, you’ll get run over if you just sit there.

Will Rogers

Source: http://quotes4all.net/quote_1235.html

[Powered by QuotesPlugin v1.0 for Windows Live Writer]

Continue reading

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

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!

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 :