Prescriptive Architecture for Web Service Development
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The increasing complexity and cost of developing and maintaining Web services, particularly for small to medium-sized organizations, due to the need for frequent updates in ancillary technologies and communication infrastructure, which diverts resources away from business logic development.
Innovation Solution
A software facility that provides reusable architecture components to enable developers to package business logic as services, generating senders and receivers from service deployment metadata, and allowing attachment of aspect containers to manage ancillary functions like caching, security, and error handling declaratively, thereby shielding business logic from underlying changes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If developers manually implement ancillary requirements (caching, security, error handling) in Web services, then functional completeness is improved, but development complexity and cost increase significantly
Solution Approach 1:
The patent segments the service implementation into two distinct layers: business logic (core functionality) and ancillary concerns (caching, security, error handling, auditing). This segmentation allows developers to focus on business logic while the framework automatically handles ancillary requirements through aspect containers and interceptors, reducing development complexity while maintaining functional completeness
Solution Approach 2:
The patent introduces an intermediary layer (aspect containers and interceptors) that sits between the business logic and the infrastructure concerns. This intermediary automatically manages ancillary requirements by intercepting service calls and applying cross-cutting concerns without requiring developers to manually implement each concern, thereby reducing complexity while ensuring reliability
2Reliability
If Web services include embedded ancillary logic for caching, security, and error handling, then service functionality is improved, but adaptability to changing standards deteriorates
Solution Approach 1:
By segmenting ancillary logic into separate aspect containers that can be independently configured and updated, the patent enables adaptability to changing standards without affecting core business logic. Each aspect (caching, security, etc.) can be modified or replaced based on evolving standards while the service functionality remains intact
Solution Approach 2:
The patent implements dynamic aspect containers that can be configured at runtime and adjusted based on changing requirements and standards. This dynamic configuration allows the service to adapt to new standards and technologies without requiring fundamental changes to the service implementation, maintaining both functionality and adaptability
3Adaptability or versatility
If developers write custom code for communication infrastructure and ancillary requirements, then service customization is improved, but productivity deteriorates
Solution Approach 1:
The patent creates universal aspect containers that can handle multiple ancillary concerns (caching, security, error handling, auditing) through a single unified mechanism. This multi-functional approach allows developers to customize services by configuring aspects rather than writing custom code for each concern, significantly improving productivity while maintaining customization capabilities
Solution Approach 2:
The framework implements self-service through automatic aspect application and interceptors that handle ancillary requirements without developer intervention. The system automatically manages caching strategies, security checks, error handling, and auditing by intercepting service calls and applying configured aspects, allowing developers to focus on business logic and increasing productivity
Data Source
AI summary
A prescriptive architecture for application development is provided. In some embodiments, the architecture comprises a service, a receiver, a sender, and a transport. The service functions to perform the actual business logic, is decorated with service deployment metadata; and is operable to communicate via types. The receiver is coupled to the service and is generated entirely from the service deployment metadata. The receiver is operable to receive messages, convert the received messages into types, and communicate with the service using the types. The sender is coupled to the receiver and is generated entirely from the service deployment metadata. The sender functions as a proxy for the service to a service consumer, and is operable to communicate using types with the service consumer. The sender is operable to convert the types to messages, and communicate with the receiver via messages. The transport functions as a message exchange technology that allows the sender and receiver to communicate, and is designated by the service deployment metadata and implemented as an underlying technology of the sender and the receiver.


