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

Slides:



Advertisements
Similar presentations
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Introduction to Rails.
Advertisements

EPrints Web Configuratio n Management. SQL database Web server Scripts to configure repository activities Configuration files EPrints - the Administrator's.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Apache Struts Technology
1 OBJECTIVES To generate a web-based system enables to assemble model configurations. to submit these configurations on different.
 Copyright Wipro Technologies JSP Ver 1.0 Page 1 Talent Transformation Java Server Pages.
Using JavaServer Pages Harry R. Erwin, PhD CIT304/CSE301.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
6/11/2015Page 1 Web Services-based Distributed System B. Ramamurthy.
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
2006 JavaOne SM Conference | Session TS-4160 | © 2006 by IBM Create, Test, and Consume Web Services with the Eclipse Web Tools Platform Jeffrey Liu, Release.
Peoplesoft: Building and Consuming Web Services
1 Java Server Pages Can web pages be created specially for each user? What part does Java play?
Apache Struts Technology A MVC Framework for Java Web Applications.
OKC Tools for XML Metadata Management Marlon Pierce Community Grids Lab Indiana University.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
Web Services with Apache CXF Part 2: JAXB and WSDL to Java Robert Thornton.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
UNIT-V The MVC architecture and Struts Framework.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
1 CIS336 Website design, implementation and management (also Semester 2 of CIS219, CIS221 and IT226) Lecture 9 JavaServer Pages (JSP) (Based on Møller.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
1 Lecture 22 George Koutsogiannakis Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.
Application Web Service Toolkit Geoffrey Fox, Marlon Pierce, Ozgur Balsoy Indiana University July
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
WSDL Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
Grid Computing, B. Wilkinson, 20043b.1 Web Services Part II.
Using JavaBeans and Custom Tags in JSP Lesson 3B / Slide 1 of 37 J2EE Web Components Pre-assessment Questions 1.The _____________ attribute of a JSP page.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
DSpace UI Alexey Maslov. DSpace in general A digital library tool useful for storage, maintenance, and retrieval of digital documents Two types of interaction:
Session 1 SESSION 1 Working with Dreamweaver 8.0.
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
NMED 3850 A Advanced Online Design January 12, 2010 V. Mahadevan.
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
Web Services with Apache CXF Part 2: JAXB and WSDL to Java Robert Thornton.
JSTL Lec Umair©2006, All rights reserved JSTL (ni) Acronym of  JavaServer Pages Standard Tag Library JSTL (like JSP) is a specification, not an.
ILDG Middleware Status Chip Watson ILDG-6 Workshop May 12, 2005.
Introduction to JavaServer Pages. 2 JSP and Servlet Limitations of servlet  It’s inaccessible to non-programmers JSP is a complement to servlet  focuses.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
JSP Tag Libraries Lec Last Lecture Example We incorporated JavaBeans in “Course Outline” Example But still have to write java code inside java.jsp.
Web Services with Apache CXF Part 2: JAXB and WSDL to Java Robert Thornton.
Rails & Ajax Module 5. Introduction to Rails Overview of Rails Rails is Ruby based “A development framework for Web-based applications” Rails uses the.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
David Lawrence 7/8/091Intro. to PHP -- David Lawrence.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 3 1COMP9321, 15s2, Week.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
1 Java Server Pages A Java Server Page is a file consisting of HTML or XML markup into which special tags and code blocks are inserted When the page is.
©2001 Priority Technologies, Inc. All Rights Reserved Meteor Status Miami Face to Face Meeting January 16 – 18, 2002.
XML Tools (Chapter 4 of XML Book). What tools are needed for a complete XML application? n Fundamental components n Web infrasructure n XML development.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Java Server Pages. 2 Servlets The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
Application Web Service Toolkit Allow users to quickly add new applications GGF5 Edinburgh Geoffrey Fox, Marlon Pierce, Ozgur Balsoy Indiana University.
10 Copyright © 2004, Oracle. All rights reserved. Building ADF View Components.
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
Net-centric Computing Web Services. Lecture Outline  What is Web Service  Web Service Architecture  Creating and using Java Web Services  Apache Axis.
Apache Struts Technology A MVC Framework for Java Web Applications.
Live. learn. work. play Superior Avenue Suite 310 Cleveland Ohio Tel: Fax:
Apache Cocoon – XML Publishing Framework 데이터베이스 연구실 박사 1 학기 이 세영.
Labs: Create, deploy and test a simple web service
Sabri Kızanlık Ural Emekçi
Writing simple Java Web Services using Eclipse
Web Services-JAX-RPC JAX-RPC enables a Web Service endpoint to be developed using either a Java Servlet or Enterprise JavaBeans (EJB) component model.
Knowledge Byte In this section, you will learn about:
Data Modeling II XML Schema & JAXB Marc Dumontier May 4, 2004
Chapter 27 WWW and HTTP.
Presentation transcript:

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

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 –Newsgroups, bibtex-based citation managers, glossary term managers

6/2/2003O.Balsoy et al.

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.

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

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

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.

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.

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)

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.

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

6/2/2003O.Balsoy et al. ## if numbers is requested, then print out the leading numbers, ## i.e. 1., 2.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

6/2/2003O.Balsoy et al. XML Schema location is given to SchemaWizard. XML Form Wizard is generated. XML instance is marshaled.

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

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

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

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

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

6/2/2003O.Balsoy et al. URLs and Contact Project Site: ard. ard Ozgur Balsoy,

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

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

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

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 } );

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

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

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

6/2/2003O.Balsoy et al. Architecture