Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sep 22, 2003 Data Handling Interface Enhancing Capabilities at the IRIS DMC IRIS Data Management Center Sue Schoch

Similar presentations


Presentation on theme: "Sep 22, 2003 Data Handling Interface Enhancing Capabilities at the IRIS DMC IRIS Data Management Center Sue Schoch"— Presentation transcript:

1 Sep 22, 2003 Data Handling Interface Enhancing Capabilities at the IRIS DMC IRIS Data Management Center Sue Schoch sue@iris.washington.edu

2 Sep 22, 2003EMICES/ORFEUS Workshop Overview Background of DHI Data Handling Interface DHI Clients

3 Sep 22, 2003EMICES/ORFEUS Workshop Data Sources DMS Virtual Private Network Frame Relay ASL IDA AFTAC NEIC FTP sites ASL IDA others Real Time Links Many, many, many sites

4 Sep 22, 2003EMICES/ORFEUS Workshop Data Storage Oracle Database BUD Buffer of Uniform Data ARCHIVE POND Pool of Network Data

5 Sep 22, 2003EMICES/ORFEUS Workshop BUD Reception of Data in Real Time IU H2 IC LISS ER RE WY IE AR MB LB US UW UO XXSC NM UU PR Earthworm Waveserver PN BB Array II NRTS LD CI NN AK AZ KN KZ IM GT AU CD-1 EQ NL Antelope ORB MN GE SEEDLink BUD

6 Sep 22, 2003EMICES/ORFEUS Workshop BUD Stations (5/29/2003) 23 Networks 763 Stations 4057 channels 10.4 gigabytes per day 3.8 terabytes per year BUD

7 Sep 22, 2003EMICES/ORFEUS Workshop ARCHIVE BUD Removal 14 days EH 62 days other BATS 7 days after Real time BUD ARCHIVE QC’d DATA PASSCAL

8 Sep 22, 2003EMICES/ORFEUS Workshop ARCHIVE Mass Storage System StorageTek Powderhorn Inside a Powderhorn 7-2/3’ high x 10-2/3’ Diameter ARCHIVE

9 Sep 22, 2003EMICES/ORFEUS Workshop POND event based products BUD ARCHIVE POND FARM Products SPYDER Products SPYDER Building FARM Building POND

10 Sep 22, 2003EMICES/ORFEUS Workshop Oracle Database Oracle Database BUD ARCHIVE POND Metadata Event Catalogs Human Input Operation Stats Oracle Database

11 Sep 22, 2003EMICES/ORFEUS Workshop Current Data Access SeismiQuery NetDC BREQ_FAST WEED WILBER II BUD Tools Dataless SPYDER® Building FARM Building Limited QC Continuous Data Mixed Quality Continuous Data LEGEND Limited QC Event Windowed Data Mixed QC Event Windowed Data Metadata in Oracle SPYDER BUD FARM ARCHIVE POND

12 Sep 22, 2003EMICES/ORFEUS Workshop Need for new access methods The amount of seismic data is increasing at a rate much faster than funding levels To improve efficiencies, more automated, electronic methods need to be utilized Platform Independent object-oriented solutions are desirable Portable Code with JAVA Software reuse Only 3 primary distributed computing models existed Enterprise Beans JAVA only DCOM Microsoft CORBA (Common Object Request Broker Architecture) Object Management Group Language and platform neutral FISSURES - Already defined need for objects and interfaces in 1999

13 Sep 22, 2003EMICES/ORFEUS Workshop Overview Background of DHI Data Handling Interface DHI Clients

14 Sep 22, 2003EMICES/ORFEUS Workshop Data Handling Interface New Concept in Distributing Data Electronic data handling Moving from transfer by physical media Data flow in real time Up-to-data metadata Uses object-oriented techniques JAVA CORBA

15 Sep 22, 2003EMICES/ORFEUS Workshop FISSURES Framework for the Integration of Seismological Software for University Research in Earth Sciences FISSURES model Defines seismic classes Methods Attributes Defines the relationships between objects Seismic Object

16 Sep 22, 2003EMICES/ORFEUS Workshop IDL Interface Definition Language IDL Describes objects, their attributes and methods IDL compiler converts IDL to specific programming language creates skeletons and stubs True multi-tier Client objects write to a stub Server objects write to a skeleton Seismic Object IDL

17 Sep 22, 2003EMICES/ORFEUS Workshop CORBA Common Object Request Broker The mechanism that connects objects over a distributed network Implements many services Object discovery Event services Security Authentication etc. Seismic Object IDL Seismic Object Seismic Object IDL CORBA

18 Sep 22, 2003EMICES/ORFEUS Workshop IDL Network Service ORB IDL Waveform Service ORB DHI Services at the IRIS DMC IDL Event Service ORB

19 Sep 22, 2003EMICES/ORFEUS Workshop DHI Data Center Services Network information Networks, Stations, channels, instrumentation, data inventory Response representations Event information Location, magnitudes, etc. Moment tensors Waveforms Continuous Data from Archive Event data products FARM SPYDER® BUD

20 Sep 22, 2003EMICES/ORFEUS Workshop IDL Event Service ORB DHI Services and Client Programs IDL Waveform Service ORB IDL Network Service ORB IDL Waveform Service ORB IDL Network Service ORB IDL Event Service ORB Client1 Client2

21 Sep 22, 2003EMICES/ORFEUS Workshop DHI Services Interface to Data SeismiQuery NetDC BREQ_FAST WEED WILBER II BUD Tools Dataless SPYDER® Building FARM Building Oracle Database SPYDER BUD FARM ARCHIVE Event Service Network Service Waveform Service POND

22 Sep 22, 2003EMICES/ORFEUS Workshop IfEvent Service Interfaces EventFinder EventAccess EventChannelFinder

23 Sep 22, 2003EMICES/ORFEUS Workshop IfEvent: EventFinder Interface query_events get_by_name

24 Sep 22, 2003EMICES/ORFEUS Workshop IfEvent: EventAccess Interface get_attributes get_origins get_origin get_preferred_origin

25 Sep 22, 2003EMICES/ORFEUS Workshop IfEvent: EventChannelFinder Interface list_channels retrieve_channel

26 Sep 22, 2003EMICES/ORFEUS Workshop Origin eventAccess SKELETONCODESKELETONCODE IfEvent Service Example STUBCODESTUBCODE RUNTIMELIBRARYRUNTIMELIBRARY CLIENT RUNTIMELIBRARYRUNTIMELIBRARY Event Service Naming Service eventFinder query_events eventAccess get_origin Origin

27 Sep 22, 2003EMICES/ORFEUS Workshop IDL: Network Service Interfaces NetworkExplorer NetworkFinder ConcreteNetworkAccess

28 Sep 22, 2003EMICES/ORFEUS Workshop IfNetwork: NetworkExplorer Interface locate_channels locate_by_sampling locate_all retrieve_channel retrieve_grouping

29 Sep 22, 2003EMICES/ORFEUS Workshop IfNetwork: NetworkFinder Interface retrieve_by_id retrieve_by_code retrieve_by_name retrieve_all

30 Sep 22, 2003EMICES/ORFEUS Workshop IfNetwork: ConcreteNetworkAccess get_attributes retrieve_grouping retrieve_groupings retrieve_channel retrieve_channels_by_code locate_channels retrieve_instrumentation retrieve_calibrations retrieve_time_corrections retrieve_all_channels

31 Sep 22, 2003EMICES/ORFEUS Workshop IfSeismogramDC Service Interfaces DataCenter DataCenterCallBack

32 Sep 22, 2003EMICES/ORFEUS Workshop IfSeismogramDC: DataCenter Interface available_data retrieve_seismograms queue_seismograms retrieve_queue cancel_request request_status request_seismograms

33 Sep 22, 2003EMICES/ORFEUS Workshop IfSeismogramDC : DataCenterCallBack Interface return_seismograms return_group return_error finished canceled

34 Sep 22, 2003EMICES/ORFEUS Workshop IDL IfNetwork Service Indepth Defines Network Service Objects Attributes of each object Methods of each object

35 Sep 22, 2003EMICES/ORFEUS Workshop IDL Network Service #include "Fissures.idl" module Fissures { module IfNetwork { //******************************************************** // Data Types //********************************************************* typedef string StationCode; //5 char typedef string SiteCode; //2 char typedef string ChannelCode; //3 char typedef string NetworkCode; //2 char struct NetworkId { NetworkCode network_code; Time begin_time; };

36 Sep 22, 2003EMICES/ORFEUS Workshop IDL Network Service, cont 1 struct ChannelId { NetworkId network_id; StationCode station_code; SiteCode site_code; ChannelCode channel_code; Time begin_time; }; typedef sequence ChannelIdSeq; valuetype Channel { private ChannelId id; public string name; public Orientation an_orientation; public Sampling sampling_info; public TimeRange effective_time; public Site my_site; ChannelId get_id(); ChannelCode get_code(); }; typedef sequence ChannelSeq;

37 Sep 22, 2003EMICES/ORFEUS Workshop IDL Network Service, cont 2 //************************************************************ // Exceptions //************************************************************ exception ChannelNotFound { ChannelId channel; }; //************************************************************ // Iterator //************************************************************ interface ChannelIdIter { long how_many_remain(); boolean next_n( in long how_many, out ChannelIdSeq seq ); void destroy(); };

38 Sep 22, 2003EMICES/ORFEUS Workshop IDL Network Service, cont 3 //************************************************************ // NetworkDC Interface //************************************************************ interface NetworkDC { readonly attribute NetworkExplorer a_explorer; readonly attribute NetworkFinder a_finder; }; //************************************************************ // NetworkExplorer Interface //************************************************************ interface NetworkExplorer { ChannelIdSeq locate_channels( in Area the_area, in SamplingRange sampling, in OrientationRange orientation, in long seq_max, out ChannelIdIter iter ); Channel retrieve_channel( in ChannelId a_channel) raises ( ChannelNotFound ); };

39 Sep 22, 2003EMICES/ORFEUS Workshop IDL compile jidl --impl IfNetwork.idl Channel.java Channel_impl.java ChannelCodeHelper.java ChannelHolder.java ChannelHelper.java ChannelId.java ChannelIdHelper.java ChannelIdHolder.java ChannelIdIter.java ChannelIdIterHelper.java ChannelIdIterHolder.java ChannelIdIterOperations.java ChannelIdIterPOA.java ChannelIdIter_impl.java NetworkIdHelper.java NetworkIdHolder.java OrientationRange.java OrientationRangeHelper.java ChannelHolder.java OrientationRangeHolder.java OrientationRangeValueFactory_impl.java OrientationRange_impl.java SamplingRange.java SamplingRangeHelper.java SamplingRangeHolder.java SamplingRangeValueFactory_impl.java SamplingRange_impl.java Site.java

40 Sep 22, 2003EMICES/ORFEUS Workshop Overview Background of DHI Data Handling Interface DHI Clients

41 Sep 22, 2003EMICES/ORFEUS Workshop Sample Client Sample Java Client to retrieve channel information ExplorerRetrieveChannel.java: import edu.iris.Fissures.*; import edu.iris.Fissures.IfNetwork.*; import edu.sc.seis.fissuresUtil.namingService.*; public class ExplorerRetrieveChannel {

42 Sep 22, 2003EMICES/ORFEUS Workshop Sample Client, cont 1 public static void main(String args[]) { java.util.Properties props = System.getProperties(); if( args[1].equals("-props") ) { System.out.println("Opening prop file "+ args[2] ); java.io.InputStream in = new java.io.BufferedInputStream( new java.io.FileInputStream(args[2])); props.load(in); } ExplorerRetrieveChannel erc = new ExplorerRetrieveChannel(); org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init( args, props ); erc.run( orb ); }

43 Sep 22, 2003EMICES/ORFEUS Workshop Sample Client, cont 2 public int run ( org.omg.CORBA_2_3.ORB orb ) throws org.omg.CORBA.UserException { //======================================== // register factories for valuetype variables //======================================== edu.iris.Fissures.model.AllVTFactory vt = new edu.iris.Fissures.model.AllVTFactory(); vt.register(orb); //======================================== // Get the NetworkExplorer //======================================== FissuresNamingServiceImpl fissuresNamingService = new FissuresNamingServiceImpl(orb); NetworkDC networkDC = fissuresNamingService.getNetworkDC( "edu/iris/dmc",”IRIS_NetworkDC”); NetworkExplorer networkExplorer = networkDC.a_explorer();

44 Sep 22, 2003EMICES/ORFEUS Workshop Sample Client, cont 3 //======================================== // Initialize some query structures //======================================== edu.iris.Fissures.IfNetwork.NetworkId networkId = new edu.iris.Fissures.IfNetwork.NetworkId("IU", new edu.iris.Fissures.Time( "2001-07-01T10:11:12.0000Z",-1)); edu.iris.Fissures.IfNetwork.ChannelId chanid1 = new edu.iris.Fissures.IfNetwork.ChannelId(networkId, "ANMO", "00”,"BH1", new edu.iris.Fissures.Time( "2001-07-01T10:11:12.0000Z",-1));

45 Sep 22, 2003EMICES/ORFEUS Workshop Sample Client, cont 4 //=========================================== // Call retrieve_channel //=========================================== try { Channel channel = networkExplorer.retrieve_channel( chanid1 ); printChannel( channel ); System.out.println(“Client finished”); } catch( ChannelNotFound ex ) { System.out.println("Channel not found" ); System.exit(-1); } } // End method run } // End of ExplorerRetrieveChannel

46 Sep 22, 2003EMICES/ORFEUS Workshop Sample Client, compile and run setenv CLASSPATH FissuresIDL1.0.jar setenv CLASSPATH ${CLASSPATH}:fissuresUtil1.0.jar setenv CLASSPATH ${CLASSPATH}:FissuresImpl1.0.jar setenv CLASSPATH ${CLASSPATH}:OB.jar setenv CLASSPATH ${CLASSPATH}:OBNaming.jar setenv CLASSPATH ${CLASSPATH}:log4j-1.2beta4.jar setenv CLASSPATH ${CLASSPATH}:. javac ExplorerRetrieveChannel java ExplorerRetrieveChannel -props prop.dmc

47 Sep 22, 2003EMICES/ORFEUS Workshop Sample Client, output **************************** networkExplorer.retrieve_channel **************************** Channel: IU (19880101000000.0000GMT) Station: ANMO Location: 00 Channel: BH1 Name: IU.ANMO.00.BH1.2000-10-19,16:00:00.2002-11-19,21:07:00 Azimuth: 89.0 Dip: 0.0 Starttime: 20001019160000.0000GMT Endtime: 20021119210700.0000GMT Client finished

48 Sep 22, 2003EMICES/ORFEUS Workshop Sample Client, property file org.omg.CORBA.ORBClass=com.ooc.CORBA.ORB org.omg.CORBA.ORBSingletonClass=com.ooc.CORBA.ORBSingleton # # get the name serivce # The format for a corbaloc for a naming service is # corbaloc:iiop:host.domain:port/NameService # You should put your own choices for host.domain and port # #ooc.orb.service.NameService=corbaloc:iiop:piglet.seis.sc.edu:7771/NameService ooc.orb.service.NameService=corbaloc:iiop:dmc.iris.washington.edu:6371/NameService IfNetwork.domain=edu/iris/dmc IfNetwork.servername=IRIS_NetworkDC

49 Sep 22, 2003EMICES/ORFEUS Workshop Interfaces: Leveraging CORBA Waveform Service Network Services Event Service Researcher IRIS DMC NCEDC GEOSCOPE ORFEUS Beijing DC OHP DC

50 Sep 22, 2003EMICES/ORFEUS Workshop DHI Clients

51 Sep 22, 2003EMICES/ORFEUS Workshop More Information dhi-servers@iris.washington.edu dhi-clients@iris.washington.edu Mailing Lists: Web Sites: Server, client and mailling list information: http://www.iris.edu/DHI Fissures IDL and information: http://www.seis.sc.edu/software/Fissures CORBA information: http://www.corba.org

52 Sep 22, 2003EMICES/ORFEUS Workshop Fissures Prototype Team - IDL Philip Crotwell, University of South Carolina Tom Owen, University of South Carolina Paul Friberg, ISTI Sid Hellman, ISTI Tom McSweeney, IRIS DMC John Winchester, IRIS DMC Mitchel Sanders A2B

53 Sep 22, 2003EMICES/ORFEUS Workshop DHI Server Developers Chris Laughbon: Sandy Stromme: Sue Schoch: Waveform servers Event server Network server

54 Sep 22, 2003EMICES/ORFEUS Workshop End of Talk


Download ppt "Sep 22, 2003 Data Handling Interface Enhancing Capabilities at the IRIS DMC IRIS Data Management Center Sue Schoch"

Similar presentations


Ads by Google