Open Grid Services Architecture Early Adopters Workshop J2EE Design Scott Sylvester 05/29/2002 Agenda Discuss OGSA J2EE Design OGSA J2EE Environment Configuration/Management, Tooling Websphere J2EE Runtime usage OGSA components in a J2EE environment Registry Lifecycle Notification Handlemap OGSA Tech. Preview 2 extensions for J2EE Work In-Process items OGSA J2EE Environment Build-Time (Developer) Produces OGSA Services: Deployment Descriptors WSDL/GSDL JARs WARs EARs CodeGen OGSA Code Generation Called from WSAD OGSA Plug-in Callable via command-line OGSA Services creation WSAD Tooling (IDE for OGSA) Create OGSA Services OGSA Services client proxies OGSA D/C/M Run-Time (Server Side) DCM JSPS JVM Web Container Websphere Admin. AppSvr HandleMap Sets up J2EE env. AppSvr Messaging HTTP HTTP Server OGSA AXIS extensions OGSA Notification Support Lifecycle Timer Services Registry SOAP/HTTP SOAP/JMS OGSA Service Clients Client-side proxies Deployment Descriptors WSDL/GSDL JARs WARs EARs Java2GSDL GSDL2Java EJBs only supported in Tooling JavaBeans and EJBs Use OGSA Services Debug OGSA Services WSDL/GSDL editor Deploys OGSA services Manages OGSA instances View traces/Logs Produces OGSA Services clients JMS Messaging EJB Container OGSA Instance (AppSvr) JMS Pub/Sub Integrated Messaging JCA connectors OGSA J2EE Design - Registry Registry (local) component provides the following: Implements Registry portType Persistent Service - ignores setTerminationTime Registers with Lifecycle Timer service for sweeping registry for timed out services Implements Notification Source portType onRegister Topic onUnregister Topic onUpdate Topic Supports queries and <gsh>/inspection.wsil get Via xQuery and FindServiceData() By (use cases): Name, ServiceType, ServiceImpl, Handle, Factory handle, portType, service desc., termination time, etc. Virtual Organization (VO) registries are solution specific views OGSA J2EE Design - Lifecycle Lifecycle timer component provides the following: Provides general timer service and calling of registered callback on separate thread Used by: Registry for sweeping and cleaning up timed out registered services HandleMap for sweeping and cleaning up timed out services via Grid Service portType termination time Structured to move to EJB 2.0 timer EJB support OGSA J2EE Design - Notification Notification component provides the following: Notifications based on subscription changes to service data Subscribe to any change in service data Subscribe to changes when service data changes to a set value Subscribe to changes when the service data changes from one set value to another set value Service Data container (per Service instance) supports serviceDataListener Notifications based on subscriptions to SourceTopics Topics defined in the service's GSDL document via service data elements in GSDL Uses JMS provider for Messaging in Websphere OGSI_RegisterSubscription, OGSI_ServiceDataChange, OGSI_Notify, OGSI_UnRegisterSubscription Pub/Sub model with Query criteria support Query criteria specified via XPath filter Subscription portType introduced for pluggability Keeps information on the client subscribing, the topic, and the termination time Supports notifying any OGSA service via GSH passed in subscription Lightweight notificationSink support for additional client environments e.g. .NET web service registering for OGSA notifications OGSA J2EE Design - HandleMap HandleMap component provides the following: Implements HandleMap portType Persistent Service - ignores setTerminationTime Each OGSA instance contains a servlet that supports: http://<hostname>:port/ogsa/<ogsaInstanceName>/handlemap.gsr Returns WSDL for handleMap service .../ogsa/<ogsaInstanceName> is the Grid Service home handle map ID http://<hostname>:port/ogsa/<ogsaInstanceName>/inspection.wsil Returns WSIL containing references to all instantiated services GSH for registry is .../ogsa/<ogsaInstanceName> http://<hostname>:port/ogsa/<ogsaInstanceName>/<serviceName>.gsr Returns GSR (WSDL) for the service http://<hostname>:port/ogsa/<ogsaInstanceName>/<serviceName> Is the GSH for the Service Supports EJBs persistent restart when OGSA instance restarts Entity Bean primary key find and activation HandleMap portType will support a new operation for a client to provide a WSDL and a GSH will be returned that can be used for a notificationSink Allows for a lightweight notificationSink OGSA J2EE Tech. Preview 2 extensions Supports the following: Delegation and direct implementation models for OGSA services implemented as JavaBeans Delegation model for OGSA services implemented as EJBs (entity or stateful session) Sevice Factory (generated) HandleMap Web Container (HTTP channel) (GSHs to GSRs) OGSA Axis extensions Instantiate Set Ref. Sevice Delegation Stub (generated) EJB Service Impl. Invoke OGSA service dispatcher Sevice Factory (generated) EJB Container (Messaging channel) Instantiate Set Ref. Invoke Sevice Delegation Stub (generated) JavaBean Service Impl. Globus Tech. Preview 2 supplies: Interfaces (ServiceType, Destroy), BaseSkeleton, FactoryBaseSkeleton, ServiceDelegation Globus Tech. Preview 2 extended with EJB support Globus Tech. Preview 2 extended with general Axis handler callable from either Web Container or EJB Container 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> OGSA Release 1 security Proposal to not support in OGSA release 1: Grid Service compatability assertions (needs further definition) Grid Service service implementation (needs further definition) Summary Grid Service Specification defines Common Programming Model (OGSI core) Both JavaBean and EJB implementations will be supported for OGSA service implementations QoS is an implementation decision and not imposed by the model IBM and Globus development teams collaborate via OGSI developers mailing list on OGSI core IBM to supply robust and functionally rich OGSI core leveraging the J2EE environment's inherent capability Both IBM and Globus will use OGSI core as the basis for their efforts Globus is providing an open source implementation IBM is providing a productized and supported version in a Websphere J2EE robust environment