320 likes | 490 Views
WSRF.NET. Presented By: Fernando Trigoso. Based On: Architectural Foundations of WSRF.NET by M. Humphrey and G. Wason. Outline. WSRF.NET Architecture Attribute-based programming Compatibility with GT4 WSRF Issues. Background. WSRF WS-Resource WS-ResourceProperties
E N D
WSRF.NET Presented By: Fernando Trigoso Based On: Architectural Foundations of WSRF.NET by M. Humphrey and G. Wason
Outline • WSRF.NET Architecture • Attribute-based programming • Compatibility with GT4 • WSRF Issues
Background • WSRF • WS-Resource • WS-ResourceProperties • WS-ResourceLifetime • WS-Notification
WSRF.NET • Open source implementation of WSRF and WS-Notification • Implements full set of specifications • Useful to evaluate the WSRF approach • To make programming WSRF.NET services as easy as programming Web Services
WSRF.NET Architecture • Internet Information Services (IIS) • Internet Server Application Programming Interface (ISAPI) Humphrey, M., & Wasson, G. (2004). Architectural Foundation of WSRF.NET.
WSRF.NET Architecture • ASP.NET with Web Services Extensions (WSE) • Wrapper Web Service automatically created by WSRF.NET Humphrey, M., & Wasson, G. (2004). Architectural Foundation of WSRF.NET.
WSRF.NET Architecture • WS-Resource implemented with ADO.NET • Serialized result returned to client Humphrey, M., & Wasson, G. (2004). Architectural Foundation of WSRF.NET.
WS-Resource • WS-Resource implementation • Ability to query complex states • Ease to access multiple resources • Lookup based on key and state contents
WS-Resource • Portability, scalability and flexibility • No single-point of failure • Efficient expiration check • Provides an interface for customization
Outline • WSRF.NET Architecture • Attribute-based programming • Compatibility with GT4 • WSRF Issues
Declarative & Imperative • Imperative programming • Most common • Methods define behavior of programs • Declarative programming • Declarations define behavior • No need to write instructions • Attributes are used to define behavior [WebMethod] public string Hello() {return “Hello World”;} Wagner, B. (2005). Effective C#.
WSRF.NET Attribute Usage • Attributes easily define: • Resources • Resource Properties • Port Types • Aids development of grid services
[WebMethod] public string Hello() { return “Hello World”; } [WebMethod] public DateTime GetDate() { return DateTime.Now; } Used to create the service logic ASP.NET creates: WSDL document Support to route SOAP requests HTML pages to test web service Security provided by WSE Attributes for Web Service
class PackageService { [Resource] Package pkg; [Resource] PkgRoute route; [Resource] PkgLocation location; … WS-Resource is an abstraction for a collection of state WS-Resource addressed by EPR Resource is the collection of members with [Resource] attribute Attributes for Stateful Resource Wasson, G. (2006). WSRF.NET 3.0 Programmer’s Reference.
class PackageService { [Resource] Package pkg; [Resource] PkgRoute route; [Resource] PkgLocation location; … Resource stored in the database with key: URL + Resource Unique ID EPR in SOAP message contains: <Address> + <ReferenceProperties> Resource loaded from database Values placed in web service’s members Attributes for Stateful Resource Wasson, G. (2006). WSRF.NET 3.0 Programmer’s Reference.
class PackageService { [Resource] Package pkg; [Resource] PkgRoute route; [Resource] PkgLocation location; … WSRF.NET allows customization Just implement IResource Not all web methods require all values Attributes for Stateful Resource Wasson, G. (2006). WSRF.NET 3.0 Programmer’s Reference.
class PackageService { [Resource] Package pkg; [ResourceProperty] public string Sender { get { return pkg.Sender; } } … Resources described in Resource Property Document (RPD) RPD is composed of ResourceProperties All members with [ResourceProperty] define RPD Attributes for Resource Properties Wasson, G. (2006). WSRF.NET 3.0 Programmer’s Reference.
Adding Port Types to the Service [WSRFPortType(typeof(GetResourcePropertyPortType))] [WSRFPortType(typeof(ImmediateResourceTerminationPortType))] public class PackageService { [Resource] Package pkg; … • WSRF defines functions that may be supported • WSRF.NET implements all current specifications • Author’s can reuse them by declaring attributes Wasson, G. (2006). WSRF.NET 3.0 Programmer’s Reference.
Outline • WSRF.NET Architecture • Attribute-based programming • Compatibility with GT4 • WSRF Issues
Compatibility with GT4 • GT4 uses a different version of WS-Addressing than WSE 3.0 • WSRF.NET makes process transparent • GT4 clients can interact with WSRF.NET services and vice versa (being tested) • WSRF.NET cannot send Notifications to both GT4 and WSE 3 services at the same time
WSRF.NET & GT4 B. Sotomayor and L. Childers. Globus Toolkit 4, Programming Java Services. 2006.
Outline • WSRF.NET Architecture • Attribute-based programming • Compatibility with GT4 • WSRF Issues
Stateful vs. Stateless • Service Oriented Architecture • Combines loosely coupled and interoperable services • State clashes with Services Architecture • Bond between client and service • Loose coupling with stateless services • Tighter coupling with stateful services • Proxies mask services as objects
Complexity of Service-Side Code • Importing port types may raise issues • Port types have their own resources • The state and its Resource Property • If one changes the other one has to change • Unintuitive interface: // No WSRF: CheckPackageIn(Package pkg, string location) // WSRF: CheckPackageIn(string location) Humphrey, M., & Wasson, G. (2004). Architectural Foundation of WSRF.NET.
Conclusion • WSRF.NET architecture • Complex application logic requires complex infrastructure • WSRF potential is strong • Decoupling will be difficult • WSRF.NET helps WSRF
Agnostic 1 • OGSI and WSRF: • WSRF introduced to comply with new extensions to Web Services • From WSE 2 to WSE 3 • OGSI based on Web Services standards that changed • WSRF emerged as the new standard
Agnostic 2 • Why .NET? • Java platform was already taken • .NET aids in rapid development • Windows OS is extremely popular • Multi-language support
Agnostic 3 • What is “projection of state”? • View of the state of a Resource • State is handled internally • Promotes encapsulation • Similar to properties in a class
Agnostic 4 • Compatibility with Globus? • WSRF.NET can interact with GT4 • They both expose grid services • University of Virginia is establishing a Campus Grid with both GT4 and WSRF.NET
Agnostic 5 • WSRF.NET WS-Addressing (WSA)? • Uses WSA form WSE 3.0 • Uses the namespace of the request in a response • Setting needs to be changed to send requests to non-WSE 3.0 services
Agnostic 6 • Concurrency issues in database? • Different services have different URLs • WSRF.NET uses the URL as part of the key to store a resource • Client is responsible for managing EPRs • Databases can handle concurrency issues
Agnostic 7 • Is the identity of a WS-Resource exposed? • Identity is not exposed • Means for the service to load WS-Resource • Client provides EPR