automating metadata services

28
6/2/2003 O.Balsoy et al. Automating Metadata Services Ozgur Balsoy Community Grids Lab, Indiana University Marlon Pierce, Presenting

Upload: shen

Post on 21-Feb-2016

41 views

Category:

Documents


0 download

DESCRIPTION

Automating Metadata Services. Ozgur Balsoy Community Grids Lab, Indiana University Marlon Pierce, Presenting. XML Metadata Management. Managing metadata is a general problem faced all portals, problem solving environments. EX: Data provenance - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Automating Metadata Services

6/2/2003 O.Balsoy et al.

Automating Metadata ServicesOzgur Balsoy

Community Grids Lab, Indiana University

Marlon Pierce, Presenting

Page 2: Automating Metadata Services

6/2/2003 O.Balsoy et al.

XML Metadata Management• Managing metadata is a general problem faced all

portals, problem solving environments.– EX: Data provenance

• The Community Grids Lab at IU has developed a number of tools for XML metadata management.– Wizard publishers allow you to create and publish XML

instances.– JMS-style brokers can be used to both store XML messages

persistently and deliver immediately.– Access control systems provide fine-grained topic management.– RSS catalogs allow topic postings to be browsed and searched.

• See various running examples at www.xmlnuggets.org. – Newsgroups, bibtex-based citation managers, glossary term

managers

Page 3: Automating Metadata Services

6/2/2003 O.Balsoy et al.

Page 4: Automating Metadata Services

6/2/2003 O.Balsoy et al.

Need for Metadata Generation• Applications that guide users through a complicated task

are usually called wizards.• XML wizards are applications that receive user inputs to

generate XML documents. Such applications with different capabilities are widely available for either freely or commercially.

• In our research on XML information frameworks, we help users generate schema-based XML content and publish into a XML messaging broker.

• Around the broker, the system allows new applications to plug-in easily; however, each application might require a different schema or a newer version of an older one.

• We analyzed the steps to develop and integrate such applications.

Page 5: Automating Metadata Services

6/2/2003 O.Balsoy et al.

Steps for a Metadata Generator• There were common tasks that we performed for each

application:– Design an object model and create a W3C XML Schema to

represent it.– Create a memory object model of the schema, i.e.

corresponding Java classes.– Design an interface, i.e. HTML forms, for user inputs, and bind

the interface with the memory model.– Let users input data.– Finally, generate XML based on input, and publish it.

• Given these repetitive tasks, we have developed a general purpose tool that automates the creation of this process.

Page 6: Automating Metadata Services

6/2/2003 O.Balsoy et al.

SchemaWizard and XML• Schema Wizard maps XML Schema elements to

HTML form elements through its schema parser, and creates the framework and logic for an XML form wizard.

• Users use newly generated wizards to create and publish XML instances, which follow a schema, to any destinations such as publish/subscribe messaging systems or through SMTP.

• XML form wizards are Web applications that also serve as validating XML editors and are customized through schema annotations.

Page 7: Automating Metadata Services

6/2/2003 O.Balsoy et al.

SchemaWizard and XML

AnnotatedXML Schema SchemaParser

XML FormWizardXML Instances

follows generates

input of

outputs

edited

SchemaWizard

A Mapping of XML to SchemaWizard Parts

Page 8: Automating Metadata Services

6/2/2003 O.Balsoy et al.

SchemaWizard Architecture• Schema Wizard (SW) is composed of

three major parts:– A Web application package with necessary

libraries and directory structure that serves as an application template;

– A SchemaParser that process W3C XML Schemas and builds the final XML form wizard;

– Velocity Macro templates that contain the view and the logic for the wizard.

Page 9: Automating Metadata Services

6/2/2003 O.Balsoy et al.

SchemaWizard Architecture• The steps that take place in generating a XML form

wizard1. The Schema Wizard unpacks and deploys the Web application

package into a Web server’s application repository (i.e. webapps under Tomcat).

2. User provides with a location of the Schema.3. The Schema is read in to create an in-memory representation

(SOM) of the schema and also to create Java classes.• SOM=Castor’s Schema Object Model• SOM API provides a convenient interface to access the W3C XML

Schema structures.4. Using the SOM, Castor SourceGenerator creates Java classes

that correspond to the Schema structures. These classes form the memory model (i.e. Javabeans for JSP) and come with the necessary framework to parse and regenerate (marshal and unmarshal) XML instances.

5. Java classes are compiled, and binaries are placed into the new project’s directory structure.

Page 10: Automating Metadata Services

6/2/2003 O.Balsoy et al.

SchemaWizard Architecture

Castor Schema Unmarshaller

CastorSource

Generator

JavaBeans

Castor SOM

SchemaParser

Velocity Templates

Java Compiler

Annotated XML Schema

WebApplicationTemplate

Libraries Classes JSPs

XML Form Wizard created as a Web Application

(1)

(2)

(3)

(4)

(5)

(6)

(7)

(8)

Page 11: Automating Metadata Services

6/2/2003 O.Balsoy et al.

SchemaWizard Architecture• The steps that take place in generating a XML form

wizard (cont.)6. Using the SOM once again, SchemaParser traverses the in-

memory schema and collects structure information, i.e. names, types, whether element or attribute, complex or simple type.

7. Based on this information, the parser chooses what type of template will be used, stores the information in a Velocity context, and invokes the template engine to generate the program logic presented in JSP. The parser also gathers the Schema annotations, i.e. page color, input sizes, at this level and place the parameters in the context.

8. The engine runs on templates placing each JSP code in its directory, creating the interface based on the user schema.

Page 12: Automating Metadata Services

6/2/2003 O.Balsoy et al.

SchemaParserData Flow and Action

Traverse schema for types

Collect type information, create a context

Decide template:Project pageIndex pageSimple typeEnumerated simple typeUnbounded simple typeComplex typeUnbounded complex type

Velocity Template Engine

Castor SOM

Schema object

Individual types

Velocity contextwith type info

Context, template

JSP

JavaBeans info

Templates

Page 13: Automating Metadata Services

6/2/2003 O.Balsoy et al.

<tr><td>## if numbers is requested, then print out the leading numbers, ## i.e. 1. , 2.2, 3.4.2#if ($numbers)<%= ((Leveler)request.getAttribute("_leveler")).increase()%>#end$label</td><td> <select name="$name"> <option value="<%=REMOVE%>"><%=REMOVE%></option><% // print out option. select the one that matches in-memory value for(int i=0; i< values.length; i++) { String enm = values[i]; %> <option value="<%= enm %>"<%= (value != null && value.equals(enm)) ? " SELECTED" :"" %>><%= enm %> </option><% } %> </select></td></tr>

Velocity Template Example

Page 14: Automating Metadata Services

6/2/2003 O.Balsoy et al.

XML Schema location is given to SchemaWizard.

XML Form Wizard is generated.

XML instance is marshaled.

Page 15: Automating Metadata Services

6/2/2003 O.Balsoy et al.

Schema Annotations• Users can make cosmetic changes for the final project

beforehand with annotations in the schema.• W3C XML Schema allows developers to embed user

defined languages into the schema using <xs:annotation> and <xs:appinfo> structures.

• Annotations for the whole schema affects the whole page, i.e. page title, background color, default input sizes, leading numbers on and off, XML browsing on and off.<xs:annotation>

<xs:appinfo source="title">SchemaWizard Output for Topics Schema </xs:appinfo><xs:appinfo source="inputsize">30</xs:appinfo><xs:appinfo source="bgcolor">#e0e0ff</xs:appinfo><xs:appinfo source="leadingnumbers">false</xs:appinfo><xs:appinfo source="showxml">true</xs:appinfo>

</xs:annotation>

Page 16: Automating Metadata Services

6/2/2003 O.Balsoy et al.

Schema Annotations• Annotations for individual structures override the schema

annotations, i.e. input size for each element. Also, labels for each element can be defined, and input fields can be changed to larger text areas with a textarea parameter and row numbers, or to password fields by a password parameter whose value set to true.

<xs:annotation><xs:appinfo source=“label">User Password</xs:appinfo><xs:appinfo source="inputsize">15</xs:appinfo><xs:appinfo source=“password">true</xs:appinfo>

</xs:annotation>…<xs:annotation>

<xs:appinfo source=“label">Memo</xs:appinfo><xs:appinfo source=“textarea">5</xs:appinfo>

</xs:annotation>

Page 17: Automating Metadata Services

6/2/2003 O.Balsoy et al.

Smaller input size

Textarea, row count set to 5

Unbounded elementwith its own add/delete buttons

XML browsing turned on

Title set

Background set to gray

Page 18: Automating Metadata Services

6/2/2003 O.Balsoy et al.

XML Form Wizard• The final products of the Schema Wizard are XML Form Wizards

that help users to create XML instances.• The Wizards are Web applications compliant with the JSP

standards.• Each application is built around a form page.• 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 <

%@:include>).• Complex schema elements are mapped to JavaBeans generated

from the schema with Castor.– Scripting templates set up the imports

Page 19: Automating Metadata Services

6/2/2003 O.Balsoy et al.

XML Form Wizard

Index Page

• create a root element bean as new or from existing XML• include sub element pages• if submitted, validate the bean content• if editing is complete, generate XML

Project Page

• create a session• initialize the environment• retrieve an XML instance list

XML

Complex Types

• create a complex type bean• include sub elements• if submitted, validate the content

Simple Types

• if parent bean has data, display content for this type (or property) using a form element• if form is submitted, update the parent bean for this type

listXML

instance

Newcommand

includes

includes

Page 20: Automating Metadata Services

6/2/2003 O.Balsoy et al.

URLs and Contact

• Project Site: http://ptlportal.ucs.indiana.edu/schemawizard.

• Email: Ozgur Balsoy, [email protected].

Page 21: Automating Metadata Services

6/2/2003 O.Balsoy et al.

Web Services Invocation Methods

• Static– A local WSDL– A stub generator, e.g. wsdl2java utility– A programmer, generate stub code and make

changes• Dynamic

– Generate web-based interface and make SOAP call on the fly

Page 22: Automating Metadata Services

6/2/2003 O.Balsoy et al.

Why WSDI

• WSDI – Web Services Dynamic Invocation

Event Static Dynamic

Invocation Process

Generate stub code for each web service

Transparent

web services modified

Stub needs to be rebuilt

No change

Page 23: Automating Metadata Services

6/2/2003 O.Balsoy et al.

What is WSDI

• Is a Java application based on Apache Axis and Tomcat

• Makes use of WSDL and WSIL technology• Provides transparent environment for web

services invocation• Generates JSP interface dynamically

Page 24: Automating Metadata Services

6/2/2003 O.Balsoy et al.

A Sample SOAP Call – echo

// Input data from the usertextToSend = “Hello World!”;// Setup the TargetEndpointAddresscall.setTargetEndpointAddress( new java.net.URL(endpointURL) );call.setOperationName( new QName("MyService", "serviceMethod") );// I/O information for operations, // type mapping will be required for complex typecall.addParameter( "arg1", XMLType.XSD_STRING, ParameterMode.IN);call.setReturnType( org.apache.axis.encoding.XMLType.XSD_STRING);

// Make the SOAP callret = (String) call.invoke( new Object[] { textToSend } );

Page 25: Automating Metadata Services

6/2/2003 O.Balsoy et al.

Implementation

• WSDL plays the most import role

WSDL

Interface definition

Implementation bindings

abstract definition

type of message and operation

concrete information

port and binding protocol

Axis SOAP calls

complete informationof service

WSIL Source of web services

WSD

L

WSD

L

Page 26: Automating Metadata Services

6/2/2003 O.Balsoy et al.

Components• Four important components

– WSDL Parser• gets the I/O information of each service

– GhostWSDL Parser • Parses the WSDL to schema format

– Schema Wizard• generates the user interface and gathers the input data

– User Data Parser• Simple type: parses the users’ data to its corresponding Java

value • Complex type: uses data to instantiate the Java object class

which generated by Schema Wizard

Page 27: Automating Metadata Services

6/2/2003 O.Balsoy et al.

Components(cont.)

WSDLDocument

WSDLDocument

WSDL Parser

GhostWSDL Parser

Schema Wizard

User Data Parser

ServiceInvocationGhostWSDL

XML with User Data

User Data

I/O information of the service

Page 28: Automating Metadata Services

6/2/2003 O.Balsoy et al.

Architecture

WSD

L Pa

rser

Gho

stW

SDL

Pars

er(12)

Web

Ser

vice

sIn

spec

tion

Prox

y C

lient

Model

User Data Parser

Schema Wizard

JSP Interface

SOAP Web ServicesInspection Proxy

Server

WSDL Document

WSIL Document

HTT

P

HTT

P

(3)

(8)

(4)

(5)(6)

(7)

(5')(6')

HTT

P

(13)

(14)

(15)

(16')(16)

JSP Interface

Con

trolle

r

Users Service Provider

SOAPHTTP

(1)(2)

(9)(10)

(11)(17)

(12a)(12b)