250 likes | 396 Views
Implementation Workshop September 26, 2002. 9:00 - 9:05 Introduction - Chuck Koscher 9:05 - 10:00 Implementation Practices at American Physical Society Mark Doyle, APS 10:00 -10:45 The Implementation of the new CrossRef System
E N D
Implementation Workshop September 26, 2002 2002 CrossRef Annual Member Meeting Implementation Workshop
9:00 - 9:05Introduction - Chuck Koscher 9:05 - 10:00Implementation Practices at American Physical Society Mark Doyle, APS 10:00 -10:45 The Implementation of the new CrossRef System Georgios Papadopoulos, CEO Atypon10:45 - 11:00 Coffee Break11:00 - 11:45 The New CrossRef XML Schema Bruce D. Rosenblum, Inera Inc. 11:45 - 12:00 Member Access Pages - Chuck Koscher 12:00 - 12:15 Guidelines and Coding Examples - Chuck Koscher 12:15 - ? Open Discussion Agenda 2002 CrossRef Annual Member Meeting Implementation Workshop
System Site - Member Pages 2002 CrossRef Annual Member Meeting Implementation Workshop
2002 CrossRef Annual Member Meeting Implementation Workshop
2002 CrossRef Annual Member Meeting Implementation Workshop
2002 CrossRef Annual Member Meeting Implementation Workshop
2002 CrossRef Annual Member Meeting Implementation Workshop
2002 CrossRef Annual Member Meeting Implementation Workshop
2002 CrossRef Annual Member Meeting Implementation Workshop
2002 CrossRef Annual Member Meeting Implementation Workshop
2002 CrossRef Annual Member Meeting Implementation Workshop
2002 CrossRef Annual Member Meeting Implementation Workshop
2002 CrossRef Annual Member Meeting Implementation Workshop
2002 CrossRef Annual Member Meeting Implementation Workshop
2002 CrossRef Annual Member Meeting Implementation Workshop
Guidelines • Deposits • 2 or more deposits can be running simultaneously, • A temp file is created using the HTTP fname parameter … prevents two files with the same name from being deposited at the same time • XSD, operation=doXSDMDUpload : DTD, operation=doMDUpload • Queries • Try to avoid many requests with only one query (group in 10+) • Upload very large (1000+) queries using asynchronous query interface • Reduce dependence on mddb.xml pre-filtering, submit more queries • OpenURL Query Format • DON’T : id=doi:10.1061/(ASCE)0893-1321(2002)15:4(125) OpenURL query problems and deposits , there is no DOI: in a DOI value • DO : id=10.1061/(ASCE)0893-1321(2002)15:4(125) 2002 CrossRef Annual Member Meeting Implementation Workshop
Programming - Perl • Query as an HTTP POST #!/usr/bin/perl -w use strict; use LWP::UserAgent; use URI::Escape; require HTTP::Headers; my $h = HTTP::Headers->new; $h->header('Content-Type' => 'application/x-www-form-urlencoded'); my $user=“XXXX"; my $pass=“yyyyy"; my $query="00218561|||50|16|4713|||1| …. my $verysafe = uri_escape($query, "| \n"); 2002 CrossRef Annual Member Meeting Implementation Workshop
Programming - Perl • Query as an HTTP POST cont. my $user_agent = new LWP::UserAgent; $user_agent->agent(“Your agent name".$user_agent->agent); $user_agent->timeout(360); my $req = new HTTP::Request 'POST', 'http://mddb2.crossref.org /query/xref.cgi', $h; $req->content("usr=$user&pwd=$pass&db=mddb&qdata=$query"); # Send query to the server my $response; $response = $user_agent->request($req); 2002 CrossRef Annual Member Meeting Implementation Workshop
Programming - Java • Deposit as an HTTP POST import HTTPClient.*; import java.net.*; … public class doDeposits { HTTPClient.NVPair[] uploadOpts = new HTTPClient.NVPair[2]; HTTPClient.NVPair[] uploadFileOpts = new HTTPClient.NVPair[1]; uploadOpts[0] = new HTTPClient.NVPair ("operation","doMDUpload"); uploadOpts[1] = new HTTPClient.NVPair ("area","live"); uploadFileOpts[0] = new HTTPClient.NVPair ("fname",XMLFile); HTTPClient.NVPair[] ct_hdr = new HTTPClient.NVPair[1]; byte[] uploadBytes; 2002 CrossRef Annual Member Meeting Implementation Workshop
Programming - Java • Deposit as an HTTP POST cont HTTPClient.HTTPConnection httpConn = new HTTPClient.HTTPConnection (host,port); uploadBytes = HTTPClient.Codecs.mpFormDataEncode (uploadOpts,uploadFileOpts,ct_hdr); HTTPClient.CookieModule.setCookiePolicyHandler(null); HTTPClient.HTTPResponse httpResp = null; httpResp = httpConn.Post ("/servlet/deposit?login_id=" + username + "&login_passwd=" + password,uploadBytes,ct_hdr); …. • Requires HTTPClient.jar http://www.innovation.ch/java/HTTPClient/ • Down load sample code from our site http://mddb2.crossref.org/doc/samples.zip 2002 CrossRef Annual Member Meeting Implementation Workshop
Programming - VB • Query as an HTTP GET Set WinHttpReq = New WinHttpRequest (need winhttp50sdk.exe) WinHttpReq.SetTimeouts 0, 60000, 60000, 300000 WinHttpReq.Open "GET", _ "http://mddb2.crossref.org/query/xref.cgi?usr=" + username.Text + _ "&pwd=" + password.Text + "&area=" + area + "&fuzzy=true&type=" + _ “operation + "&qdata=" + qData” , False WinHttpReq.Send results = WinHttpReq.ResponseText 2002 CrossRef Annual Member Meeting Implementation Workshop
Programming - VB • Deposit as an HTTP POST Set WinHttpReq = New WinHttpRequest (need winhttp50sdk.exe) WinHttpReq.SetTimeouts 0, 60000, 60000, 300000 WinHttpReq.Open "POST", "http://mddb2.crossref.org/servlet/deposit", False WinHttpReq.SetRequestHeader "Pragma", "no-cache" WinHttpReq.SetRequestHeader "Content-Type", "multipart/form-data; boundary=-------------------------7d23583220204" formData = formData + "---------------------------7d23583220204" + vbCrLf formData = formData + "Content-Disposition: form-data; name=" + Chr(34) + "login_id" + Chr(34) + vbCrLf formData = formData + vbCrLf formData = formData + username.Text + vbCrLf WinHttpReq.Send formData HTML.DocumentHTML = WinHttpReq.ResponseText 2002 CrossRef Annual Member Meeting Implementation Workshop
CrossRef Client Application http://www.crossref.org/vbclient.zip 2002 CrossRef Annual Member Meeting Implementation Workshop
CrossRef Client Application http://www.crossref.org/vbclient.zip 2002 CrossRef Annual Member Meeting Implementation Workshop
CrossRef Technical Working Group • Join the TWG !!! Mailing list crtwg@crossref.org Mail list archives available on www.crossref.org Monthly teleconferences Planning an ‘in-person’ TWG for later this year ckoscher@crossref.org 2002 CrossRef Annual Member Meeting Implementation Workshop