Prescriptive architecture for application development
Abstract
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.
Claims
exact text as granted — not AI-modified1 . A computer-implemented method for generating a unified communications infrastructure from an intermediary language assemblies of a business logic decorated with service deployment metadata, the method comprising:
receiving as input an intermediary language assemblies generated from a business logic decorated with service deployment metadata; identifying one or more classes designated as services in the intermediary language assemblies, and for each identified service class: identifying one or more methods in the service class that are to be exposed as services in the intermediary language assemblies; identifying one or more transport designations in the intermediary language assemblies, each transport designation indicating a message exchange technology the service classes are to be exposed over; and generating a unified communications infrastructure for the business logic, the unified communications infrastructure comprising a service corresponding to each method that is to be exposed as a service, a contracts assembly specifying custom types used by the service, and a sender and receiver pair for each service and transport designation,
such that each sender is operable to invoke the service by transmitting a message over its underlying transport by calling its corresponding receiver, each receiver operable to receive the message from its corresponding sender and forward the call on to the service, and each sender and receiver pair hides the details of the underlying transport for the sender and receiver pair.
2 . The method of claim 1 , wherein the service classes are specified by the service deployment metadata in the business logic.
3 . The method of claim 1 , wherein the transport designations are specified by the service deployment metadata in the business logic.
4 . The method of claim 1 , wherein the sender is wholly generated from the service deployment metadata.
5 . The method of claim 1 , wherein the receiver is wholly generated from the service deployment metadata.
6 . The method of claim 1 , wherein the message exchange technology supports asynchronous invocation of the service.
7 . The method of claim 1 further comprising, for each identified service class, generating an internal model of the service class, the internal model comprising the identified methods that are to be exposed as services.
8 . The method of claim 7 further comprising, for each identified service class, generating an internal model of the service class, incorporating the transport designations into the internal model.
9 . The method of claim 7 , wherein the unified communications infrastructure is generated using the internal model of the class.
10 . A computer-readable storage medium whose contents cause a computer to:
receive as input intermediary language assemblies generated as a result of a compile operation on actual business logic enhanced with service deployment metadata; scan through the intermediary language assemblies to identify classes designated as services, and for each identified service class:
identify one or more methods that are to be exposed as services in the intermediary language assemblies;
identify one or more transport designations specified in the intermediary language assemblies, each transport designation indicating a transport the service class is to be exposed over, wherein the transport is a message exchange technology; and
generate a communications infrastructure for the business logic, the unified communications infrastructure comprising a service corresponding to each method that is to be exposed in the class, a contracts assembly specifying custom types used by the service, and a sender and receiver pair for each service and transport designation,
such that each sender is operable to invoke the service by transmitting a message over its underlying transport by calling its corresponding receiver, each receiver operable to receive the message from its corresponding sender and forward the call on to the service, and each sender and receiver pair hides the details of the underlying transport for the sender and receiver pair.
11 . The computer-readable storage medium of claim 10 , wherein the service classes are designated using the service deployment metadata in the business logic.
12 . The computer-readable storage medium of claim 10 , wherein the transport designations are specified using the service deployment metadata in the business logic.
13 . The computer-readable storage medium of claim 10 , wherein the sender is generated entirely from the service deployment metadata.
14 . The computer-readable storage medium of claim 10 , wherein the receiver is generated entirely from the service deployment metadata.
15 . The computer-readable storage medium of claim 10 , wherein the message exchange technology includes an in-process transport.
16 . The computer-readable storage medium of claim 10 , wherein the message exchange technology includes a .NET Remoting transport.
17 . The computer-readable storage medium of claim 10 , wherein the message exchange technology includes a web services transport.
18 . The computer-readable storage medium of claim 10 , wherein the message exchange technology includes a .NET transport.
19 . The computer-readable storage medium of claim 10 further comprising content that cause the computer to, for each identified service class, generate an internal model of the class.
20 . The computer-readable storage medium of claim 19 further comprising content that cause the computer to incorporate the identified transport designations into the internal model of the class.
21 - 42 . (canceled)Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.