A-Policy Model: Decoupling Non-Functional Requirements in Social Network Service Coordination
Policy Driven Services Coordination for Building Social Networks Based Applications
This paper introduces the A-Policy Model, a modular framework designed to coordinate distributed services (such as social networks) by decoupling functional logic from non-functional properties (NFP). By utilizing an Event-Condition-Action (ECA) rule mechanism, it enables automated synchronization and atomicity across diverse social media APIs like Facebook, Twitter, and Yahoo.
TL;DR
In the era of interconnected social platforms, synchronizing data across APIs (Facebook, Twitter, etc.) is fraught with failures. This paper proposes the A-Policy Model, an architectural framework that separates the "what" (business logic) from the "how" (non-functional requirements like consistency and atomicity) using a policy-driven approach. By leveraging Event-Condition-Action (ECA) rules, the model allows developers to build robust social network applications without getting bogged down in low-level transaction protocols.
Background: The Problem of Tight Coupling
Current standards for web services—such as WSDL, SOAP, and the WS-Transaction family—often require programmers to manually stitch together protocols to ensure security or adaptability. This approach is:
- Complex: Developers must be experts in various "WS-*" protocols.
- Brittle: Changing a non-functional requirement (NFP) often requires rewiring the entire service logic.
- Inflexible: It struggles with the dynamic nature of Web 2.0 social APIs.
The authors argue for a Separation of Concerns, where the coordination logic remains clean, and the operational constraints are managed by an "orthogonal" policy layer.
The A-Policy Methodology
The core contribution is the A-Policy Model, which provides a structured way to define and apply rules to service activities.
1. The A-Policy Architecture
The model relies on three main components:
- Scope: The target of the policy (e.g., a single Activity or an entire Workflow).
- ECA Rules: The brain of the policy. When an event occurs (network failure), if a condition is met (retry count < 3), then execute an action (retry connection).
- Isolation: The Policy Manager and Event Service are separate from the core Coordination Engine, allowing them to scale and evolve independently.

2. Physical Intuition: The Event Loop
Think of the A-Policy model as an "Observation-Reaction" loop. Instead of hard-coding error handling into every service call, the Event Service acts as a monitor, detecting "complex situations" across the execution environment. When a situation is detected, the Policy Engine triggers an asynchronous reaction, ensuring the application remains consistent even if one social network API is down.
Experimental Case Study: Status Broadcaster
To test the model, the authors developed Status Broadcaster.
- The Task: Synchronize a user's status across Facebook, Twitter, and Yahoo.
- The NFP Challenge: Maintain atomicity. If Yahoo fails to update, the system must decide whether to rollback all updates or alert the user.
By using the Windows Workflow Foundation, the authors proved that the A-Policy model could handle these scenarios gracefully. The policies ensured that non-functional behaviors (like atomicity) were enforced without complicating the simple "Update Status" command within the source code.
Critical Analysis & Future Outlook
The A-Policy model represents a significant step towards Modular Service Design. By treating policies as first-class citizens, it reduces the cognitive load on developers.
Limitations:
- Performance Overhead: The paper does not deeply quantify the latency introduced by isolating the Event Service and Policy Engine.
- Rule Conflicts: As policies grow in complexity, "rule interference" (where two policies contradict each other) becomes a potential risk.
Future Work: The authors aim to develop a dedicated Policy Language that can be seamlessly integrated with existing coordination languages like BPEL or BPMN, making this approach more accessible to the wider developer community.
Conclusion
The A-Policy Model provides a blueprint for a more resilient web. By moving away from manual protocol implementation toward automated, policy-driven coordination, we can build social network applications that are not only functional but inherently robust and adaptable.
