Distribution of authority
One argument against Web services is their dependence on network connections. By distributing authority, however, a practical Web application can function in the absence of a reliable network.

by Michael L. Perry, president and consultant, Mallard Software Designs Inc. Intel Corp.

When entering a negotiation, you must be sure to talk to the right person. It does no good to negotiate with someone who lacks authority. When you try to close, you might find that the person on the other side of the table cannot commit to the terms. When this happens, the deal is left hanging until the other party can escalate. You may have spent hours in the negotiating room, arguing your case and convincing the other party, only to walk out empty handed. [Donaldson, 296]

The same is true of distributed software systems such as Web services. If the machine that you are currently working with does not have the authority to commit to a transaction, it will have to escalate—make a connection to another machine. You will be left waiting until the network request can be serviced. If a problem occurs, all the work you put into the transaction will be lost.

Durability
In the theory of computer science, a transaction is a unit of work that is atomic, consistent, isolated, and durable. In my previous article, we discussed consistency in terms of the historic model. We will discuss the atomic and isolated properties later, but let's now focus on durability. Durable means that once a transaction commits, it is forever committed. As in negotiation, for a transaction to be durable, it must be presented to an entity with the authority to commit.

Every entity derives its authority from another entity. A supervisor derives authority for a manager. A manager derives authority from a director. And a director derives authority from the shareholders. Authority is given for the sake of efficiency. The shareholders elect directors to make decisions on their behalf so that they don't have to vote on every detail of running the business. A director has the authority to commit the company to a course of action. Once committed, the shareholders cannot reverse the decision. (They can, however, vote the director off the board.)

By the same token, computers in a network derive authority from one another. A client machine derives authority from the server. The server grants this authority for the sake of efficiency, so that a network connection is not required to process every user request. But once the client commits to a transaction, the server cannot deny it.

The tools of authority
When an entity is granted authority, it requires a few tools. A director, for example, may be granted the right to sign company checks. To write checks responsibly, he would need to have financial statements prepared for him on a regular basis. Without check-writing ability, the director would be inefficient, as he would have to escalate every payment. Without financial information, he might commit the company to a dangerous course of action.

Information systems also require tools to become effective authorities. A client machine must have the ability to create objects. If it does not, the system as a whole will be inefficient, as a network connection would be required for many requests. Furthermore, a client machine must have its own cache of information upon which to base decisions. Otherwise, it might commit to a transaction that should have been denied.

If you're interested in this topic, these articles may be helpful:

Why is SOA taking so long?
by Jason Bloomberg, senior analyst, ZapThink LLC ...
Web services: the powerful tenets of SOA
by Jason Bloomberg and Ron Schmelzer, senior analysts, ZapThink LLC ...
Mobilized software: the developer's new challenge
by Andrew Binstock, principal analyst, Pacific Data Works LLC. Intel C...
Designing a Web service that delights your customers
by Michael Perry, president and consultant, Mallard Software Designs I...
Seven things your SOA team shouldn't say
by Jason Bloomberg, senior analyst, ZapThink LLC Our weather may ...

Related Jobs:

C# / ASP.Net Web Developer #54844 - CO - Boulder - Affiliated Computer Services, Inc.
Description ACS Wagers has an immediate need for an experienced de...
Systems Administrator 9717 #Q07302 - DC - Washington - BAE Systems
Description: System Adminstrator able to independently accomplish c...
Voice Data Project Specialist - Bwh #part-00033815 - MA - Boston - Partners HealthCare System, Inc.
Affiliate Name: Partners Healthcare Corporate Job Title: Voice Data...
Software Implementation Services Consultant #160960-499 - NC - Winston-Salem - SilkRoad technology Inc.
Software Implementation Services Consultant Tracking Code 160960-49...
Director, Development #059396 - CA - Mountain View - Symantec Corporation
Job Requisition # : 059396 Job Title : Director, Development Locat...
Business Process Re-engineering (Development) 0441 #Q08951 - OH - Wright Patterson Afb - BAE Systems
* Description: Principal Duties and Essential Functions: ...
Business Systems Analyst III #45705005 - MN - Minneapolis - TCF Bank
FT Business Systems Analyst III 45705005 Department ...
Sr Systems Engineer - Availability #800 - NC - Raleigh - Peopleclick, Inc.
Sr Systems Engineer - Availability Job ID 800 Location Raleigh,...
Software Enginner #2860699 - PA - Allentown - Ajilon
Description : Ajilon Consulting has been a premier provider of infor...
SAP Architects / Senior Consultants - US - Flagstone Inc.
SAP SD - Sales Distribution Senior Consultants b) 1 SAP MM - Mater...