Web Services + Jim Weaver, Learning Assistant Technologies Ken Weiner, Interactive Business Solutions Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Overview LAT/IBS co-development Introduction to web services JAX-RPC and Apache Axis uPortal channels exposed by web services PLA client and uPortal channel client Web Services for Remote Portals (WSRP) Live Demos! Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
LAT/IBS Co-development Learning Assistant Technologies (LAT) Personal Learning Assistant (PLA) Motivation: present uPortal channels to PLA users Interactive Business Solutions (IBS) Code contributed to open source Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Personal Learning Assistant Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Personal Learning Assistant Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Personal Learning Assistant Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Web Services A Web service is a piece of software that can communicate with another application over a network by using a specific set of standard protocols SOAP, WSDL, UDDI Microsoft .NET and SunONE Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
SOAP – Simple Object Access Protocol XML-based protocol for exchange of information in a decentralized, distributed environment Envelope defines what is in a message and how to process it Encoding rules expressing instances of application-defined data types defines a convention for representing RPC requests and responses. Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
WSDL – Web Services Description Language XML format for describing a Web service Specifies the service's location and the operations exposed by the service WSDL is to web services what IDL is to COM Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
UDDI – Universal Description, Discovery, and Integration The “yellow pages” of web services Facilitates service discovery UDDI Business Registry UDDI Operators: IBM and Microsoft API for registering and finding businesses and services Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Service-oriented architecture Registry UDDI UDDI Find Publish Service Requestor (client) Service Provider (server) WSDL SOAP Bind Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
JAX-RPC JavaTM APIs for XML-based Remote Procedure Call For developing and accessing Web services Defines mapping between WSDL and Java interfaces Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Apache Axis Apache eXtensible Interaction System An implementation of the SOAP submission to W3C and JAX-RPC Follow-on to Apache SOAP project Current version: beta 2 Tools TCPMonitor Java2WSDL WSDL2Java Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Axis on the Server Monday, June 10, 2002 Source: http://xml.apache.org/axis/ Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Axis on the Client Monday, June 10, 2002 Source: http://xml.apache.org/axis/ Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
TCP Monitor Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Remote Channel Web Service PLA client Channels Web Service SOAP Channels uPortal WSDL uPortal Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Remote Channel Web Service Authenticate credentials Instantiate channel fname instance identifier Web Service Client Render channel Web Service instance identifier, runtime data channel markup Receive event instance identifier, portal event Free channel instance identifier Logout WSDL Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Channel Functional Name (fname) Uniquely identifies a published channel within an instance of uPortal UP_CHANNEL Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Remote Channel Service Java Classes org.jasig.portal.webservices IRemoteChannel RemoteChannel org.jasig.portal.webservices.ser CookieSerializerFactory CookieSerializer CookieDeserializerFactory CookieDeserializer PortalEventSerializerFactory PortalEventSerializer PortalEventDeserializerFactory PortalEventDeserializer Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Web Service Deployment Descriptor WEB-INF/server-config.wsdd <service name="RemoteChannel" provider="java:RPC"> <requestFlow><handler type="SessionHandler"/></requestFlow> <responseFlow><handler type="SessionHandler"/></responseFlow> <parameter name="scope" value="session"/> <parameter name="className“ value="org.jasig.portal.webservices.RemoteChannel"/> <parameter name="methodName" value="*"/> [type mappings for Cookie, Cookie[], and PortalEvent] </service> Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
URL Rewriting org.jasig.portal.utils… AbsoluteURLFilter Add base URL <img src=“picture.gif”/> <img src=“http://remoteportal.edu/picture.gif”/> org.jasig.portal.utils… AbsoluteURLFilter XHTMLURLFilter WMLURLFilter Add base URL Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Sessions org.apache.axis.handlers.SimpleSessionHandler <SOAP-ENV:Envelope …> <SOAP-ENV:Header> <sessionID xsi:type="xsd:long“>12345</sessionID> </SOAP-ENV:Header> <SOAP-ENV:Body> . </SOAP-ENV:Body> </SOAP-ENV:Envelope> Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
PLA Client Subclass of javax.swing.JEditorPane Proxy servlet Cascading style sheet (CSS) Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
PLA Web Services Client Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Channel Web Services Client New channel type: Remote Channel Proxy Authentication Passes user interactions and portal events Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Remote Channel Proxy Java Classes org.jasig.portal.channels.remotechannel CRemoteChannel Extends BaseChannel, Implements IPrivileged, ICacheable RemoteChannel RemoteChannelSoapBindingStub Extends Stub Implements RemoteChannel RemoteChannelService RemoteChannelServiceLocator Extends Service Implements RemoteChannelService Exception Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Remote Channel Proxy Channel Type Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Remote Channel Proxy Parameters Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Remote Channel Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Web Services for Remote Portals (WSRP) WSRP will define: A WSDL interface description for invocation of WSRP services How to Publish, Find, Bind WSRP services and metadata Markup Fragment Rules for markup emitted by WSRP services Companies involved in WSRP: Bea, Bowstreet, Divine, Epicentric, Factiva, France Telecom, Fujitsu, HP, IBM, Interwoven, Lexis-Nexis, Lotus, Moravia IT, Netegrity, Oracle, Peoplesoft, Plumtree, Silverstream, Stellent, SUN, Sybase, Tibco, WebCollage, SAP Portals, SeeBeyond Source: http://www.oasis-open.org/committees/wsrp/presentations/wsrp_overview.ppt Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
WSRP Goals Enable interactive, user-facing web services to be easily plugged into standards-compliant portals Let anybody create and publish their content and applications as user-facing web services Let admins browse directories for WSRP services to plug into their portals without programming effort Let portals publish portlets so that they can be consumed by other portals without programming Make the Internet a marketplace of visual web services, ready to be integrated into portals Source: http://www.oasis-open.org/committees/wsrp/presentations/wsrp_overview.ppt Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Abstract Portal WSRP Interaction User WSRP Consumer (Portal) WSRP Producer (Service) Adds Portlet Create Portlet Instance I I Views Portlet Allocate new Instance Get Portlet Markup I I I S A Generate Markup, (opt: create Session) A S Clicks Action Perform Portlet Action I I S A A I S A Action Handling (opt: create Session) Removes Portlet Destroy Portlet Instance I I I Destroy instance Source: http://www.oasis-open.org/committees/wsrp/presentations/wsrp_overview.ppt Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
WSRP Interface bindClient() createSession() createPortletInstance() getPortletMarkup() invokePortletAction() destroyInstance() Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Planned WSRP Milestones May 2002: WSRP Scenarios / Use Cases July 2002: First draft of WSRP Specification August 2002: First version of Impl proving that spec works October 2002: Final draft of WSRP Specification November 2002: Update of Impl to reflect final draft December 2002: WSRP Specification 1.0, Update of Impl. to reflect 1.0 spec, Compliance Test Kit 2003 Start next cycle for WSRP Specification 2.0 ... Source: http://www.oasis-open.org/committees/wsrp/presentations/wsrp_overview.ppt Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Live Demos LAT PLA client uPortal channel client Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Useful URLs JAX-RPC Apache Axis WSRP java.sun.com/xml/jaxrpc/ xml.apache.org/axis WSRP www.oasis-open.org/committees/wsrp/ Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
PLA via uPortal Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
PLA via uPortal Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC
Speaker Evaluation Info: The End Speaker Evaluation Info: Speakers: Jim Weaver and Ken Weiner Presentation Title: Web Services and uPortal Date: 6/10/2002 Time: 2:00 PM – 3:00 PM Room: Grand Ballroom B Monday, June 10, 2002 JA-SIG uPortal Conference, Vancouver, BC