510 likes | 630 Views
Developing applications that harness the Agricultural and Natural Resource Grid (and linking your own data). Matthew Laurenson and Seishi Ninomiya National Agricultural Research Center Tsukuba Japan. Contents. Concepts Remote Procedure Calls (RPC) Brokers Using a broker
E N D
Developing applications that harness the Agricultural and Natural Resource Grid (and linking your own data) Matthew Laurenson and Seishi Ninomiya National Agricultural Research Center Tsukuba Japan
Contents • Concepts • Remote Procedure Calls (RPC) • Brokers • Using a broker • Metadata requests • Data requests • Issues • Linking your own data • SOAP • New brokers and future enhancements
Overall Goal: To help you make “portable” software applications (DSS).
Current Situation: Web-based but… • Applications closely coupled to databases • Limited range of applications at each site • Duplicated development at each site
Connectors for local data Ag and NR Grid – a “Hotel Room” for Agricultural and Natural Resource DSS User interface in national language Room DSS DSS DSS Soils Maps Weather Elevation
New Zealand Maps Soils Elevation Weather
日本 地図 地 地面の高さ 気象
中国 土壤 交通图 气象 海拔
Goal of Ag and NR Grid:To provide this “hotel room” in your country, so you can use models developed by others (and they can use your models).
Distributed Computing Concepts • Remote Procedure Calls • Brokers to handle heterogeneous databases
Remote Procedure Calls (RPC) • RPCs let a program execute a procedure on a remote computer as if it were local.
My Computer remote=findRemote() A=5 B=6 C=remote.add(A,B) Print C ... Remote Computer procedure add(x,y) return x+y } ... Remote Procedure Call
Remote Procedure Calls (RPC) • RPCs let a program execute a procedure on a remote computer as if it were local. • Newer RPC mechanisms let programs send and receive data objects. • RPC mechanisms: CORBA, .NET, Java RMI, SOAP... • RMI – only Java programs can use • SOAP – used by other languages as well
RPC vs Local Calls • Latency (delay) • RPCs much slower than local calls • difficult to predict how long call will take • May fail • network problems • problems with other computer (“server”) • Security issues • firewalls...
But... • Can distribute processing and data over multiple machines • Great when multiple users must share the same dynamic data item or communicate with each other.
Mediated Architecture – “Brokers” Domain Databases (Heterogeneous) Consistent data access (using RPC mechanism) Applications Broker
MetBroker Weather Databases Applications Data Retrieval Servlet South Africa Web Browsers Data Retrieval Korea Crop Growth MetBroker Japan Disease Risk New Zealand Weather Risk USA
Contents • Concepts • Remote Procedure Calls (RPC) • Brokers • Using a broker • Metadata requests • Data requests • Issues • Linking your own data • SOAP • New brokers and future enhancements
Data and Metadata Requests Interaction between applications and brokers uses objects – data packages Metadata request Standard request DB-specific query Broker Application Database (various) Metadata result Standard result DB-specific result Metadata Data
Example - MetBroker Services • Weather Data • Single station • All stations in a region • Metadata (data about data) • Database details (coverage of globe, login req.) • Regions within databases • Station details (latitude, longitude, start date, end date, elements recorded, resolution...)
Elements of a Station Data Request Weather station Username/password Time interval Resolution Required weather elements Allow summarizing
Send Request to MetBroker and Receive Result Data Request amedas 40341 rain, air temperature 1999/1/1-1999/2/1 daily OK to summarize Data Result Tsuchiura Operated 1976-present 1999/1/3 06:00-1999/2/1 00:00 10.1, -0.2, 0 12.6, 3.8, 0 11.3, -1.5, 0.3 ... To MetBroker
Query Results - Single Station Station & query details Station details and data sequences are encapsulated in a single result object rain air temp. solar rad.
Spatial Request Client Broker Temperature Rainfall Radiation
AMeDAS Wakayama Rainfall DB Background map dynamically retrieved from http://www.mapblast.com Spatial Request Daily max/min temperatures & rainfall for all stations in region
RMI Blocked by Firewalls Wrapper Servlet ClientApplication Java RMI HTTP Broker Client-side firewalls RMI ClientApplication Java Server Machine
Applet Using Multiple Brokers DEMBroker Elevation data MetBroker ChizuBroker Background maps Meteorological data Spatial Risk Applet Application text Resource Server
Elevation data Background maps Meteorological data Application text Without Multiple Threads - Sequential DEMBroker MetBroker ChizuBroker Spatial Risk Applet Resource Server 12 seconds
Elevation data Background maps Meteorological data Application text With Multiple Threads – Parallel DEMBroker MetBroker ChizuBroker Spatial Risk Applet Resource Server 5 seconds
JavaBeans for Java GUI programs • For rapid GUI development in Java can use existing MetBeans • Transparently handle firewalls, latency... • Making a simple data retrieval application takes about 30 minutes • Used in many MetBroker demo applications
Databases Linked Using “Drivers” Databases Applications Broker
Linking a Database to a Broker • Need to write one Java class (a “driver”) with two or three main methods • Typically use Java Database Connectivity (JDBC) drivers to query relational databases • Can reuse existing classes for Oracle, Postgres, and MySQL JDBC. • Drivers can read data from files via HTTP, or parse HTML tables. • “Test harness” available for driver development
How much work? • Add a new database to MetBroker • roughly working - 3 days • tested more thoroughly – 1 week • (assuming that database is readily accessible) • Make a MetBroker applet • working prototype in one day • (assuming basic science is “done”)
Developer Resources • Demos, documentation, downloads, pictures • http://www.agmodel.net • Mailing lists – subscribe at web site • Brokers are open source under the GNU Lesser General Public License. • Can be used in commercial applications • Any improvements must be released under same license
Reminders • Linking your data to the grid lets you use grid tools developed by others. • It doesn’t mean you must share your data with everyone (password protection). • The key to interoperability is the interface
Contents • Concepts • Remote Procedure Calls (RPC) • Brokers • Using a broker • Metadata requests • Data requests • Issues • Linking your own data • SOAP • New brokers and future enhancements
SOAP • An XML-based RPC mechanism • Independent of programming language • SOAP toolkits for C++, Visual Basic, Delphi, Java, ASP, PHP, Perl, Python… • Firewall-friendly • Basis of Microsoft .NET architecture • A SOAP Web service is described in standard format using a .WSDL file(Web Services Description Language)
Example - MetSOAP Visual Basic client application VB function calls MS SOAP Toolkit Application code VB objects SOAP over HTTP MetBroker MetSOAP RMI Delphi client application Delphi function calls SOAP over HTTP Applicationcode Borland SOAP Toolkit Delphi objects
SOAP Summary • Positives: • Opens brokers to a range of programming languages • Already the standard for Web-based RPC • Avoids most firewall issues • Negatives • Can’t reuse Java classes - must “mirror” in each language • Interoperability is still imperfect (but improving fast) • Inefficient for large data sets
Typical Array in SOAP • ... • <item xsi:type="xsd:float">23.43</item> • <item xsi:type="xsd:float">23.43</item> • <item xsi:type="xsd:float">23.43</item> • <item xsi:type="xsd:float">21.79</item> • <item xsi:type="xsd:float">21.79</item> • <item xsi:type="xsd:float">23.3</item> • <item xsi:type="xsd:float">21.11</item> • <item xsi:type="xsd:float">19.49</item> • <item xsi:type="xsd:float">18.48</item> • <item xsi:type="xsd:float">16.52</item> • <item xsi:type="xsd:float">14.73</item> • <item xsi:type="xsd:float">14.73</item> • ...
Model Deployment Options - Summary • Java applet • flexible, responsive once loaded but requires plug-in • Java servlet • simple browsers, rapid load, but clunky interface • SOAP • direct access for Delphi, VB… • Existing models (FORTAN,C,BASIC) • Use simple Java app. to retrieve data and write to a file
Contents • Concepts • Brokers • Remote Procedure Calls (RPC) • Using a broker • Metadata requests • Data requests • Issues • Linking your own data • SOAP • New brokers and future enhancements
New Brokers • DEM Broker - Digital Elevation Model data • Japan 50m resolution • World 1km resolution • ResourceServer • Internet-based service for software localization • ChizuBroker – Web map services • www.mapfan.com (Japan) • www.mapzone.co.nz (New Zealand) • SoilBroker – soils data
Future enhancements • Broker-side interpolation (using DEMBroker) • temporal • spatial
“Virtual station”Broker-side interpolation at single site Client Server Temperature Rainfall Radiation
Future enhancements • Broker-side interpolation (using DEMBroker) • temporal • spatial • Other brokers • Place names • Crops and crop models (prototyped) • Agrichemicals
Final Points • The Grid provides a stable, powerful foundation for Ag and NR software • You can now develop grid applications in your favourite programming language. • NARO is keen to help you to both develop new applications and link new databases. • Database owners around the world will be keen to evaluate your applications.