Open Grid Services Architecture Early Adopters Workshop Web Services Developer's Track Scott Sylvester 05/29/2002 Agenda Discuss Web Services and WSAD WSAD Tooling OGSA plug-in Content WSAD OGSA Demo Web Services Standards and Technology usage in a J2EE runtime OGSA WSAD Tooling Plug-in Develop an Eclipse plugin for WSAD to facilitate the design and development of OGSA Services Extend WSDL4J to Grid Services Definition Language (GSDL4J) XML editor for GSDL representation of Grid Services Definitions and References Tabbed editor organized by GSDL categories (serviceData, serviceType, notifications) OGSA Service creation wizard Supports service implementation as either JavaBeans or EJBs Supports starting from JavaBean, EJB, or WSDL/GSDL Supports GridService portType, serviceData creation, notificationSink portType, Factory portType, and Registry portType OGSA Service usage wizard Client proxy generation Similar to Web Service proxy generation JAX-RPC and WSIF-based to support multiple bindings Object-based interaction for serviceData (document centric model) OGSA Service perspective & views WSAD Tooling Demo - Globus Tech. Preview 2 with extensions WSAD Tooling extension - New Grid Service Wizard Group WSAD Tooling extension - Grid Service Wizard types WSAD Tooling code generation - JavaBean Delegation: Service Factory, Service Delegation stub, Service impl. skeleton, and Interfaces are generated for new service BaseSkeleton FactoryBaseSkeleton + createServiceObject ( ) CounterFactoryImpl + createServiceObject ( ) «instantiate» CounterSkeleton - impl + add ( ) + substrace ( ) + getValue ( ) «interface» DestroyInterface + preDestroy ( ) 1 «interface» CounterPortType + add ( ) + subtrace ( ) + getValue ( ) CounterImpl + value WSAD Tooling code generation - JavaBean Direct sub-class implementation: Service Factory, Service impl. skeleton, and Interfaces are generated for new service BaseSkeleton FactoryBaseSkeleton «interface» DestroyInterface + preDestroy ( ) + createServiceObject ( ) «instantiate» CounterFactoryImpl + createServiceObject ( ) CounterImpl + value «interface» CounterPortType + add ( ) + substract ( ) + getValue ( ) WSAD Tooling code generation - EJB Service Factory, Service Delegation stub, Service impl. skeleton, and Interfaces are generated for new service B a s e S k e le t o n Fa c t o r y B a s e S kele t o n «interface » D e s t r o y In t e r f a c e + createS e r vice O b j e c t ( ) + p r e Destroy ( ) Counte r Fa c t o r y Imp l + createS e r vice O b j e c t ( ) «instantiate » «inte r face» C o u n t e r EJBHome + create ( ) «instantia te » C o u n t e r EJBBe a n + value + add ( ) + subtract ( ) + getValue ( ) «instantiate » Count e r Ske le t o n + add ( ) + substrace ( ) + g e tValue ( ) «inte r face » C o u n t e r P o r t Ty p e + add ( ) + s u b tract ( ) + g e t V a lue ( ) - im pl 1 «interface » C o u n t e r EJB + add ( ) + subtra c t ( ) + g e t V a lue ( ) DestroyInterface moved to Skeleton Skeleton implements the PortType interface WSAD Tooling extensions Command-line version of code generation supported outside of WSAD tooling WSAD tooling plug-in provides complete IDE for OGSA service development experience Client-side proxy generation supported Supports creating: Web project with WSDL/GSDL and test client EJB project with service EJB implementation Java project with service JavaBean implementation Web Services standards and Technology - Server Side OGSA J2EE design usage of Web Service technology and standards JSR 101 (JAX-RPC) and JSR 109 (J2EE Web Services) Based on Axis technology Deployment model different Uses WSDD (Web Services Deployment Descriptor) and under the covers creates an Axis deployment descriptor OGSA adds stateful web services support along with common behavior for discovery/registry, lifecycle (explicit and soft-state), and notification WSDL 1.1 with extensions for: serviceType serviceData Notification Topics represented as serviceData Web Services standards and Technology - Client Side OGSA J2EE design usage of Web Service technology and standards for Client-side JSR 101 (JAX-RPC) and JSR 109 (J2EE Web Services) JAX-RPC used as Interface JAX-RPC directly used for SOAP/HTTP JAX-RPC with WSIF used for other bindings (e.g. SOAP/JMS) Client managed port access and container managed port access supported Client managed port access - client selects port and binding object to use Container managed port access - client selects serviceType and container selects the port/binding to use SOAP used for messaging Section 5 encoding and Literal XML supported SOAP-SEC header used for wire protocol containing security credential Web Services standards and Technology - Security OGSA Release 1 Security OGSA services implemented as JavaBeans GSR containing SOAP location (URL) can be secured since not a managed object OGSA services implemented as EJBs Managed object with full object/method instance security Security in OGSA release 1 is part of client-side stubs Configuration is part of JSR 109 with Websphere extensions in WSDD Security extension information will be available in serviceData in serviceType WS-Policy is follow-on standard that will be used Work In-Process items Client Environment What is it and how small can it be? Access to External Resources from within J2EE environment Need to define what Java Connectors should be part of the OGSA base WSDL representation for SOAP/JMS binding Includes location information WSDL representation of <serviceData> in <serviceType> GSR content Should it be a full WSDL/GSDL or just location information? OGSA Release 1 security Need to define security support for Registery::RegisterService, UpdateService, and UnregisterService Notification constraints Need to define what constraints should be supported - Just expressions? Proposal to not support in OGSA release 1: Grid Service compatability assertions (needs further definition) Grid Service service implementation (needs further definition)