• No results found

Automating Metadata Services

N/A
N/A
Protected

Academic year: 2020

Share "Automating Metadata Services"

Copied!
28
0
0

Loading.... (view fulltext now)

Full text

(1)

Automating Metadata

Services

Ozgur Balsoy

(2)

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.xml

nuggets.org.

(3)
(4)

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.

(5)

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

(6)

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

(7)

SchemaWizard and XML

Annotated

XML Schema SchemaParser

XML For Wizard XML Instances

follows generates

input of

outputs

edited

SchemaWizard A Mapping of XML to SchemaWizard

(8)

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

(9)

SchemaWizard Architecture

The steps that take place in generating a XML form

wizard

– The Schema Wizard unpacks and deploys the Web application package into a Web server’s application repository (i.e.

webapps under Tomcat).

– User provides with a location of the Schema.

– 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.

– 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.

(10)

SchemaWizard Architecture

Castor Schema Unmarshaller

Castor Sourc Generator JavaBean s Castor SOM Sche ma Parser Velocity Template s Java Compiler

Annotated XML Schema

Web Application

Template

Librarie

s Classes JSPs

XML Form Wizard created as a Web Application

(11)

SchemaWizard Architecture

The steps that take place in generating a XML form

wizard (cont.)

– 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. – 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.

(12)

SchemaParse

Data Flow and Action

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

Castor SOM

Schema object

Individual types

Velocity context with type info

(13)

<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><%

} %>

(14)

XML Schema location is given to SchemaWizard.

XML Form Wizard is generated.

(15)

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>

(16)

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>

(17)

Smaller input size

Textarea, row count set to 5

Unbounded element

with its own add/delete buttons

(18)

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.

(19)

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

(20)

URLs and Contact

• Project Site:

http://ptlportal.ucs.indiana.edu/schemawiz

ard.

(21)

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

(22)

Why WSDI

• WSDI – Web Services

Dynamic

Invocation

No change

Stub needs to be

rebuilt

web

services

modified

Transparent

Generate stub code

for each web service

Invocation

Process

Dynamic

(23)

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

(24)

A Sample SOAP Call – echo

// Input data from the user

textToSend = “Hello World!”;

// Setup the TargetEndpointAddress

call.setTargetEndpointAddress( new java.net.URL(endpointURL) ); call.setOperationName( new QName("MyService", "serviceMethod") ); // I/O information for operations,

// type mapping will be required for complex type

call.addParameter( "arg1", XMLType.XSD_STRING, ParameterMode.IN); call.setReturnType( org.apache.axis.encoding.XMLType.XSD_STRING);

//

Make the SOAP call

ret = (String) call.invoke(

(25)

Implementation

• WSDL plays the most import role

WSDL

Interface definition

abstract definition

type of message and operation concrete information

Axis

complete

information

of service

WSIL

Source of

web services

W

(26)

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

(27)

Components(cont.)

WSDL Document

WSDL Document

WSDL Parser

GhostWSDL Parser

Schema Wizard

User Data Parser

Service Invocation

GhostWSDL

XML with User Data

(28)

References

Related documents

OREGON 6% of federal EITC; yes Filers are eligible for the Child and Dependent Care Credit if they are eligible for the federal credit, except that the household income must be

Community and whatnot in java json validator based schema is much mass would have a java object using your data type for the api.. This is JSON

11 and generate a scala case class using an avro schema file avsc If you have given complex Avro schema but no matching Data is serialized based on the.. Avro schema Complex

Category information on the xml document that is an schema schema xsd from java generate class name for each file and also displays the generated classes generated from java

An XML schema collection is a metadata object across the blunt that contains one cover more XML Schema Definition XSD language schemas It is used to validate xml data type instances

In this work, Natural Rubber (NR) and Nitride Butadine Rubber (NBR) were used as rubber materials of the part. The initial injection temperature is empirically found, in addition

On the second course use the other AB Dublin half (1/2) length piece with the split side facing out and toward the next section of the wall panel.. Step 5:

Alzheimer  Disease  is  a  devastating  condition  in  which  a  person  progressively  loses  the  ability  to  function  independently  and  self­sufficiently.