Title: Web Services for Computational Web Portals
1Web Services for Computational Web Portals
- Marlon Pierce
- Community Grids Lab
- Indiana University
2Grid Computing Environments
- GCEs are the general name for Grid clients and
enabling middleware. - GCEs aim to bridge the gap between user and Grid
infrastructure developers. - GCE-RG Official GCE forum in the GGF.
- Geoffrey Fox, Dennis Gannon, Mary Thomas are
co-chairs. - The work presented here is an outgrowth of
several GGF and workshop meetings.
3Web Services Overview
- Web services use Internet standard protocols and
technologies (XML) to build distributed services
and applications. - Leverages XMLs strengths
- General purpose language definition rules.
- Extensibility through namespaces as well as
specific schema elements. - Limited inheritance
- Much reusable software.
- Limitations
- Not good for high performance messaging.
4XML and Web Services
- Basic components
- Wire exchange of XML messages (SOAP)
- Extensible message wrapper capable of carrying
general XML, binary data, remote procedure call
instructions. - XML descriptions of service interfaces (WSDL)
- Can express detailed description of how to invoke
service - Basic web services can use one or both
- Web services are very loosely coupled
- Take as much or little as you want.
- Which is fundamental?
- SOAP is key for message-centric architecture.
- WSDL is key for interface-centric architecture.
- Real applications will need both.
5What is Missing?
- Transient services
- Web services are not permanent or static.
- May need to be created dynamically and
registered. - Addressed by the Open Grid Service
Architecture/Infrastructure - Still must address numerous other issues
- Metadata Information services.
- Federation of services.
- Message security.
- Aggregation of web services for real
applications. - Aggregation of clients into component
environments. - Workflow
- Quality of service
6Web Service Overview
7Problems with Traditional Portal Architecture
- Portals accesses heterogeneous back ends through
a particular middle tier. - Most portal projects are not interoperable
- Middle tier software incompatible
- Wide range of protocols.
- Why do we need the portal interoperability
aspects of services? - Portal developers dont have to reinvent every
single important service. - Users will have access to more services than any
one project can provide. - Users will be able to pick up the best available
implementation of a service.
Web browser
Web browser
?
services
services
Back end resources
Back end resources
8Core Web Services
- Lets get started writing services!
- Given WSDL and SOAP, what can you build?
- Site Dependent Services
- Job Submission
- File Transfer
- Job Monitoring
- Host Monitoring
- Site Independent Services
- Context Management
- Batch/RSL Generation
- Archiving Services
- These core services are simple, stateless.
9TERAGRID HotPage
10Scientific Applications as Web Services
- Science applications consist of one or more core
Web services. - Get files to right place, script submission
instructions, submit the job, get notified at
various states. - More needs to be done
- Describe application-specific requirements
- Describe bindings of applications to host
environments and to Web services
11Application Lifecyles
- (From discussions with Tomasz Haupt)
- We divide application lifecycles into several
stages - Abstract state describes optional choices and
configurations that are available. - Ready state Specific choices are made
- Submitted Application is running (and OGSI takes
over) - Completed Application is finished, but we need
to archive information about it.
12AWS Schema Structure
- We found it useful to divide schema into two
different sets of XML schema - Application Descriptors describe abstract state.
- Application Instance Descriptors describe
particular instance states (ready, running,
archived). - Schema sets are arranged hierarchically
- Applications contain hosts
- Schema are designed to be pluggable
- Dont like my queue description schema? Plug in
your own.
13Some General Remarks
- Application services are based around schema.
- They are part of a larger class of XML
schema-based services. - We need to automate the deployment of these
services.
14Sample Steps for Creating Metadata Web Service
- Develop XML schema
- Bind schema to data classes (Castor)
- Write Façade classes to simplify use of
fine-grained interface. - Compile and deploy service
- Throw WSDL to client
- Create client stubs
- Write Web interface or GUI client with stubs.
- Scream when schema changes.
15Problems with this Approach
- Previous structure is extremely fragile as any
change to data model will propagate through the
system. - Façade creation is an art form that must
anticipate usage. - Client stubs need to be regenerated if the façade
changes.
16Automating Metadata Web Services
- Metadata services are extremely important, should
be very wide spread. - Should just create your schema and go.
- Need to drastically simplify process of
redeploying services when schema are updated. - Need to democratize schema creation
- Standards should be XML languages, not instances
of those languages.
17SchemaWizard and XML
18SchemaWizard Architecture
- SW consists of an empty Web application, the
SchemaParser, and Velocity Macro template files. - First, SW unpacks and deploys a predefined and
empty Web application into a Web servers
application repository. - A schema whose location is provided by a user is
read in to create an in-memory representation
(SOM) and also to create Java files. - SOMCastors Schema Object Model
- Java files are compiled, and binaries are placed
into the new projects classes directory. - Each schema element is mapped to a self-contained
JSP nugget. - JSP nuggets are generated from templates.
- One template for each element type (simple,
complex, enumerated, unbounded,.). - Velocity is used for convenient scripting of JSP.
- The final JSP page is an aggregate of the JSP
nuggets files (using ). - Complex schema elements are mapped to JavaBeans
generated from the schema with Castor. - Scripting templates set up the imports
19SchemaWizard Architecture
20SchemaParserData Flow and Actions
- Traverse schema for types
- Collect type information, create a context
- Decide template
- Project page
- Index page
- Simple type
- Enumerated simple type
- Unbounded simple type
- Complex type
- Unbounded complex type
- Velocity Template Engine
21XML Form Wizard
22XML Schema location is given to
SchemaWizard. XML Form Wizard is generated. XML
instance is marshaled.
23Next Steps for Schema Wizard
- Schema Wizard currently used to automate local
(to the server) XML message creation. - More about this in a minute
- We also want to use the SW create WSDL wizards
for metadata services - Use Castor to represent schemas as Java classes
on a remote server. - Note that get/sets define the interface, so any
schema expressible as WSDL. - Use WSDL (actually, convenient intermediate form)
in the schema wizard. - Schema Wizard forms tied to classes that can
discover and dynamically invoke methods to
get/set remote XML instance.
24(1)
(2)
(3)
Maps Schema to Java classes, binds to WSDL
Retrieves WSDL and generates specific interface
for data
Requests form pages
Dynamic User Interface Component
Browser
Metadata Service
Blah blah blah
HTTP
SOAP
Gathers user requests
Maps entries to WSDL expression of schema and
invokes dynamically (no stubs)
Assigns elements to Castor classes
(4)
(6)
(5)
25Computational Web Portal Stack
- Web service dream is that core services, service
aggregation, and user inteface development
decoupled. - How do I manage all those user interfaces?
- Use portlets.
Aggregate Portals
User Interfaces
Application Web Services and Workflow
Core Web Services
26Portlets in One Slide
- Portlets are pieces of (Java) code that run in
the UI server. - Each portlet corresponds to one content provider
(local or remote). - Portals aggregate portlets into a single,
user-customizable display. - Jetspeed is a free, open source portlet
implementation.
27(No Transcript)
28Discovering Deployed Services
- Our model deploys core services on distributed
servers. - Need to find servers, their deployed services,
WSDLs, service points. - This model has usual problems of distributed
systems. - Network failures, machine crashes, software
failures, topological defects. - Information services must be very dynamic,
updated often. - UDDI has had problems with data aging.
- Such problems can be addressed by peer-to-peer
and/or messaging technologies. - Lets try using NaradaBrokering for distributed
events - Narada has more extensive capabilities then used
here. - Shrideep Pallickara, www.naradabrokering.org
29Bridging Between Client-Serverand Messaging
Services
Browser
Peers register themselves to Aggregator
Tomcat Server
Blah blah blah
Tomcat Server
Broker Aggregator
Tomcat Server
HTTP
SOAP
Dynamic User Interface Component
Tomcat Server
Tomcat Server
Web service request for information
Servers run Narada Notifiers
30XML Metadata Nugget Management
- Key to computational web services is information
management. - All web service entities are described with
metadata and given URIs - Ex Application Web Services define metadata
about applications. - Application instance records archive all portal
sessions. - What do we need?
- Schema wizards to simplify deployment of new
schema services and creation of valid instances. - Federating messaging systems to deliver created
nuggets. - Distributed persistent storage
- Name based browsing and searching of XML nugget
catalogs. - Such systems should be able to handle any data
- Create, post, and browse application instance
data - Create, post, and browse citations
- Create, post, and browse news groups.
31Wizard
URI directories cataloged with RSS,
documents retrieved on demand.
Blah blah blah
Nugget Browser
Federated data storage (Files, XML, RDB)
Blah blah blah
32(No Transcript)
33Integration of Security into Web Services
- Authentication through single sign-on.
- Kerberos, PKI
- Distributed ticket system
- Getting assertions about authentication,
authorization, user attribute - SOAP security should be provided through standard
interfaces to specific mechanisms. - General methods are
- Message signing.
- Message integrity.
- Message encryption.
- Kerberos, PKI are specific mechanisms.
- Assertion is an XML document describing the
information about authentication acts performed
by subjects, attributes of subjects and
authorization decisions, Created with a specific
mechanism.
Users
Authenticate
Security Mechanism
Generating Assertions
Signing
Assertions
Encryption
HTTP
HTTP
HTTP
Web Service
Web Service
Web Service
34Example Kerberos Message Signing
- Establish both servlet session and GSS context
between the UI and AS. - UI signs SAML assertion and SOAP Body message
with GSS Contexts wrap method. - Converts signed SAML assertion and SOAP Body
message to string and attach it to SOAP message. - Requests SOAP service.
- Service extracts SAML assertion and SOAP Body
message with GSS Contexts unwrap method from AS
and verifies it. - If valid, executes request and returns response.
Web Browser
User Interface Server
Authentication Service
Kerberos Client
Kerberos Server
HTTP(S) SOAP signed SAML
SOAP Service
35Technical resources
- Modified Apache Axis 1.0 SOAP Engine
- Security assertion
- SAML being standardized at OASIS is an XML-based
security standard for exchanging authentication
and authorization information. - SAML schema draft-sstc-schema-assertion-27.xsd
- Kerberos Version 5, Release 1.2.2
36The client-side process
- Convert SAML schema to Java classes
- Castor can be used to easily convert between XML
and Java data objects. - Develop utility classes for creating assertions,
marshalling them back and forth between Java and
SAML. - Assertion attributes filled in by the appropriate
mechanism. - Login process the authentication and getting the
Kerberos ticket. - Establish the security context with the server
for getting the shared key. - Generate users SAML security assertion.
- Sign the user assertion and SOAP Body messages.
- Rebuild the SOAP messages.
37The message structure of the SOAP request on the
client-side.
- xmlnssoapenvhttp//schemas.xmlsoap.org/soap
/envelope/ - xmlnsxsdhttp//www.w3.org/2001/XMLSchema
- xmlnsxsihttp//www.w3.org/2001/XMLSchema-in
stance -
- rg/sign.xsd
- secure SAML
Assertion message -
- KerberosrityMechanism
-
-
-
- wayportal.org/signbody.xsd
- secure SOAP body
message -
38SAML example
-
- sis-open.org/committees/security/docs/draft-sstc-s
chema-assertion-27.xsd" - MinorVersion"0"
- AssertionID"156.56.104.10.1037385546507"
- Issuer"Gateway Web Portal"
IssueInstant"2002-11-15T133906.507-0500" - 406.518-0500" NotOnOrAfter"2002-11-15T134906.
518-0500" -
- http//www.gatewaypo
rtal.org/agreement.xml -
-
-
- AuthenticationMethod"urnietfrfc151
0" AuthenticationInstant"2002-11-15T133906.558-
0500" -
-
- SecurityDomain"www.gatewaypor
tal.org" Name"cyoun"/ -
- urnie
tfrfc1510 - A
Kerberos Ticket -
39The server-side process
- Establish the security context with client for
getting the shared key. - Handle the SOAP message.
- Secure assertion message.
- Secure body message.
- Security mechanism name such as Kerberos, PKI.
- Message format such as SAML, WS-security.
- Unwrap the secure assertion
- It checks the validity of the assertions.
- Issuer name
- Conditions time limit
- Subject name
- Authorization for accessing resources
- Unwrap SOAP body message
- Rebuild the SOAP message.
40An assertion-based authentication service for
Gateway Web Services
41Acknowledgements
- Mary Thomas, Steven Mock and the TACC/SDSC team.
- The Alliance Portal Team
- Geoffrey Fox
- Ozgur Balsoy (SW, MDB)
- Choonhan Youn (AWS, SAML)
- Shrideep Pallickara (NaradaBrokering)
- Galip Aydin, Ahmet Topcu, Ali Kaplan, Beytullah
Yildiz (MDB)
42Information and Downloads
- Web services www.gatewayportal.org
- Schema wizard and metadata browser
www.xmlnuggets.org - NaradaBrokering www.naradabrokering.org
- Email me marpierc_at_indiana.edu