Download presentation
Presentation is loading. Please wait.
Published byAndrea Turner Modified over 9 years ago
1
6/2/2003O.Balsoy et al. Automating Metadata Services Ozgur Balsoy Community Grids Lab, Indiana University Marlon Pierce, Presenting
2
6/2/2003O.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.www.xmlnuggets.org –Newsgroups, bibtex-based citation managers, glossary term managers
3
6/2/2003O.Balsoy et al.
4
6/2/2003O.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.
5
6/2/2003O.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.
6
6/2/2003O.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.
7
6/2/2003O.Balsoy et al. SchemaWizard and XML Annotated XML Schema SchemaParser XML Form Wizard XML Instances follows generates input of outputs edited SchemaWizard A Mapping of XML to SchemaWizard Parts
8
6/2/2003O.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.
9
6/2/2003O.Balsoy et al. SchemaWizard Architecture The steps that take place in generating a XML form wizard 1.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.
10
6/2/2003O.Balsoy et al. SchemaWizard Architecture Castor Schema Unmarshaller Castor Source Generator Castor Source Generator JavaBeans Castor SOM Schema Parser Schema Parser Velocity Templates Java Compiler Annotated XML Schema Web Application Template Web Application Template LibrariesClassesJSPs XML Form Wizard created as a Web Application (1) (2) (3) (4) (5) (6) (7) (8)
11
6/2/2003O.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.
12
6/2/2003O.Balsoy et al. SchemaParser 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 Context, template JSP JavaBeans info Templates
13
6/2/2003O.Balsoy et al. ## if numbers is requested, then print out the leading numbers, ## i.e. 1., 2.2, 3.4.2 #if ($numbers) #end $label "> <% // print out option. select the one that matches in-memory value for(int i=0; i< values.length; i++) { String enm = values[i]; %> "<%= (value != null && value.equals(enm)) ? " SELECTED" :"" %>> <% } %> Velocity Template Example
14
6/2/2003O.Balsoy et al. XML Schema location is given to SchemaWizard. XML Form Wizard is generated. XML instance is marshaled.
15
6/2/2003O.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 and 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. SchemaWizard Output for Topics Schema 30 #e0e0ff false true
16
6/2/2003O.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. User Password 15 true … Memo 5
17
6/2/2003O.Balsoy et al. Smaller input size Textarea, row count set to 5 Unbounded element with its own add/delete buttons XML browsing turned on Title set Background set to gray
18
6/2/2003O.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 ). Complex schema elements are mapped to JavaBeans generated from the schema with Castor. –Scripting templates set up the imports
19
6/2/2003O.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 list XML instance New command includes
20
6/2/2003O.Balsoy et al. URLs and Contact Project Site: http://ptlportal.ucs.indiana.edu/schemawiz ard. http://ptlportal.ucs.indiana.edu/schemawiz ard Email: Ozgur Balsoy, obalsoy@indiana.edu. obalsoy@indiana.edu
21
6/2/2003O.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
22
6/2/2003O.Balsoy et al. Why WSDI WSDI – Web Services Dynamic Invocation EventStaticDynamic Invocation Process Generate stub code for each web service Transparent web services modified Stub needs to be rebuilt No change
23
6/2/2003O.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
24
6/2/2003O.Balsoy et al. 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( new Object[] { textToSend } );
25
6/2/2003O.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 information of service WSIL Source of web services WSDL
26
6/2/2003O.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
27
6/2/2003O.Balsoy et al. Components(cont.) WSDL Document WSDL Document WSDL Parser GhostWSDL Parser Schema Wizard User Data Parser Service Invocation GhostWSDL XML with User Data User Data I/O information of the service
28
6/2/2003O.Balsoy et al. Architecture
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.