Distributed Embedded Systems
|
|
- Thomasina Brown
- 8 years ago
- Views:
Transcription
1 Distributed Embedded Systems Computer Architecture and Operating Systems 2
2 Content 1. Motivation 2. An Overview of Distributed Software Architecture Approaches 2.1 Pro & Contra Middleware 2.2 Message-Based Architectures 2.3 Service-Based Architectures 2.4 Subscribe-Based Architectures 2.5 Component-Based Architectures 3. Example: MPI 4. Example: Web Services 5. Example: OPC UA 6. Example: DDS 7. Redundancy and Consistency 8. MultiCore Programming and Synchronous Languages
3 Subscribe-Based Architectures Idea Data-centric approach, i.e. all communication is with data objects. Data objects have a type, a value and further describing attributes (update timing, redundancy, etc). No direct communication between software modules. Components can write and read data values. Furthermore, components may be notified about value changes, e.g. by calling a callback function in the component. Subscribed-based architecture Component Component Component read current value set new value notify about new value set new value Temperature1:Double updatetime = "100ms" velocity:double updatetime = "10ms"
4 Subscribe-Based Architectures Idea Data is stored in a repository Application can access the data independent of the data s and the application s location Component Component Component set new value read current value set new value Communication System notify about new value velocity:double updatetime = "10ms" Temperature1:Double updatetime = "100ms" Data Repository
5 Subscribe-Based Architectures QoS Subscribers and publishers can model the required and provided Quality of Service (QoS). Subscribers and publishers can access the same data iff the provided QoS matches the required QoS. Component Component Component Read every 10ms only if alive publish every 100ms latency <50ms velocity:double Temperature1:Double
6 Subscribe-Based Architectures QoS Typical QoS are: 1. Deadline: data is provided or required at least every x time steps 2. Latency: maximum permitted delay between sending and receiving new data 3. Filter: subscriber wants a maximum of one new value every x time steps 4. Lifespan: required/provided data must be valid for at least x time steps 5. History: the history for required/provided data must be available for at least x time steps 6. Reliability: e.g. required/provided data must be produced or transmitted redundantly 7. Ownership: required/provided data is provided by a maximum of n publishers Component Component Component Read every 10ms only if alive publish every 100ms latency <50ms velocity:double Temperature1:Double
7 Subscribe-Based Architectures Subscriber Subscribers can use two different pattern to access data: 1. Callback method: Whenever new data is available, the repository calls the subscriber 2. Wait method: The subscriber waits (i.e. it is blocked) until new data is available. In this case, the subscriber has sleep until a set of predefined conditions are fulfilled. Typical conditions are: new data exists data crosses a threshold data ceases to exist time out...
8 Subscribe-Based Architectures Transactions Often several data elements have to change their value consistently. I.e. a group of several values changes have to be treated atomically. Subscribers receive all data at the same time or not at all
9 Introduction The Data Distribution Service (DDS) is defined by the The Object Management Group (OMG) Standardization of different Publish/Subscribe solution (CosEvent, CosNotification, JMS,...) Standard since 2002 DDS comprises two layer: Lower Layer: Efficient access to data Higher Layer: Easy integration into application, i.e. data
10 Idea General concept from:
11 DCPS Structure DCPS conceptual model from:
12 Example 1: Publisher Create the participant DomainParticipant participant = DomainParticipantFactory.get_instance().create_participant( 0, // Domain ID = 0 DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT, null, // listener StatusKind.STATUS_MASK_NONE); if (participant == null) { System.err.println("Unable to create domain participant"); return; Source: RTI DDS Examples
13 Example 1: Publisher Create the topic, i.e. the published variable // Create the topic "Hello World" for the String type Topic topic = participant.create_topic( "Hello, World", This is the unique identifier for the topic StringTypeSupport.get_type_name(), DomainParticipant.TOPIC_QOS_DEFAULT, Quality of Service null, // listener StatusKind.STATUS_MASK_NONE); if (topic == null) { System.err.println("Unable to create topic."); return; Source: RTI DDS Examples
14 DCPS Structure Publisher-DataWriter relation from:
15 Example 1: Publisher Create the writer, i.e. the method that can be used to write to the variable // Create the data writer using the default publisher StringDataWriter datawriter = (StringDataWriter) participant.create_datawriter( topic, Publisher.DATAWRITER_QOS_DEFAULT, null, // listener StatusKind.STATUS_MASK_NONE); if (datawriter == null) { System.err.println("Unable to create data writer\n"); return; Source: RTI DDS Examples
16 Example 1: Publisher Write a new variable value try { datawriter.write( This is a new variable value, InstanceHandle_t.HANDLE_NIL); catch (RETCODE_ERROR e) { // This exception can be thrown from DDS write operation e.printstacktrace(); Source: RTI DDS Examples
17 DCPS Structure Topic-Key concept from:
18 DCPS Structure Platform Independent Model (PIM) of DCPS from:
19 DCPS Structure Infrastructure Module from:
20 DCPS Structure Domain Module from:
21 DCPS Structure Topic-Definition Module from:
22 DCPS Structure Topic-Definition Module How are types transmitted if different platforms and different programming languages are involved? from:
23 Example 1: Subscriber Create the the subscriber calls and the participant public class HelloSubscriber extends DataReaderAdapter {.. Must extend the DataReaderAdapter since HelloSubscriber is also used as a callback object DomainParticipant participant = DomainParticipantFactory.get_instance().create_participant( 0, // Domain ID = 0 DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT, null, // listener StatusKind.STATUS_MASK_NONE); if (participant == null) { System.err.println("Unable to create domain participant"); return; Source: RTI DDS Examples
24 Example 1: Subscriber Create the topic, i.e. the wanted variable // Create the topic "Hello World" for the String type Topic topic = participant.create_topic( "Hello, World", This is the unique identifier for the topic StringTypeSupport.get_type_name(), DomainParticipant.TOPIC_QOS_DEFAULT, Quality of Service null, // listener StatusKind.STATUS_MASK_NONE); if (topic == null) { System.err.println("Unable to create topic."); return; Source: RTI DDS Examples
25 Example 1: Subscriber Create the reader which reads the variable // Create the data reader using the default publisher StringDataReader datareader = (StringDataReader) participant.create_datareader( topic, Subscriber.DATAREADER_QOS_DEFAULT, new HelloSubscriber(), // Listener StatusKind.DATA_AVAILABLE_STATUS); if (datareader == null) { System.err.println("Unable to create DDS Data Reader"); return; The on_data_availabe method of this object is called as a callback function Source: RTI DDS Examples
26 Example 1: Subscriber This callback function is called when new data arrives public void on_data_available(datareader reader) { StringDataReader stringreader = (StringDataReader) reader; SampleInfo info = new SampleInfo(); for (;;) { try { String sample = stringreader.take_next_sample(info); get new value if (info.valid_data) { System.out.println(sample); catch (RETCODE_NO_DATA nodata) { // No more data to read break; catch (RETCODE_ERROR e) { // An error occurred e.printstacktrace(); Source: RTI DDS Examples
27 Example 1 The publisher program: The subscriber program: Source: RTI DDS Examples
28 Types 3 solutions exists to access data: 1. support for basic types such as int32, double, string, 2. types are accessed via reflection 3. types are generated (from a language-independent description) at compile time via code generation
29 DCPS Structure DDS specifies that for non basic types special classes are generated at compile time. This allows for a type-safe access to data. Since the types are defined in a programming language independent specification language (IDL, Interface Definition Language), DSS supports different programming languages. No files have to be generated for basic types such as int, float, string,... Java IDL C Abstract Type Definition C# from:
30 DCPS Structure The DDS specifies the following classes to be generated for a type foo : from:
31 DCPS Structure Publication Module from:
32 DCPS Structure Publication Module and transactions: A publisher may start a transaction by calling publisher.begin_coherent_changes() A publisher may end a transaction by calling publisher.end_coherent_changes() Within a transaction several changes might occur, these changes are treated atomically, i.e. they become visible to subscribers at the same time (or not at all). Several calls to publisher.begin_coherent_changes() and publisher.end_coherent_changes() might occur nestedly. The transaction end with the last call to publisher.end_coherent_changes(). from:
33 DCPS Structure Subscription Module from:
34 DCPS Structure Supported QoS from:
35 QoS Example // Get the default QoS for the Topic participant.get_default_topic_qos(data_topic_qos); // We need exclusive ownership of this Topic so... data_topic_qos.ownership.kind = OwnershipQosPolicyKind.EXCLUSIVE_OWNERSHIP_QOS; // And create a Topic with Default QoS and default listener. // Note: Ownership is Shared by default. data_topic = participant.create_topic("throughput", ThroughputTypeSupport.get_type_name(), data_topic_qos, null, StatusKind.STATUS_MASK_NONE);
36 DCPS Structure Wait conditions: from:
37 Publishing interaction (part 1): DCPS Structure from:
38 Publishing interaction (part 2): DCPS Structure from:
39 Subscription interaction (via listeners, possibility 1): DCPS Structure from:
40 Subscription interaction (via listeners, possibility 2): DCPS Structure from:
41 Subscription interaction (via wait-conditions, part 1): DCPS Structure from:
42 Subscription interaction (via wait-conditions, part 2): DCPS Structure from:
43 Transactions Publication Module reminder Start transaction End transaction from:
44 Example 2 Publishing complex, user-defined data types Usage of code generation at compile-time Source: RTI DDS Examples
45 Example 2 Publisher Sends n packets to publisher Source: RTI DDS Examples
46 Example 2 Subscriber Computes statistic about received packets Source: RTI DDS Examples
47 Example 2 File Structure manually implemented manually implemented manually implemented generated files
48 Example 2 File HelloWorld.idl /* The following constants will be available in the generated code as macros. * If you use #define in an IDL file, the value will be substituite by a * preprocessor before generating the code (this constant won't be available * in your program). */ const long HELLODDS_MAX_PAYLOAD_SIZE = 8192; const long HELLODDS_MAX_STRING_SIZE = 64; /* This custom structure contains an opaque buffer (blob) of maximum size * 8Kb, an unsigned long and a simple string (max size=64 characters) */ struct HelloWorld { string<hellodds_max_string_size> prefix; long sample_id; sequence<octet, HELLODDS_MAX_PAYLOAD_SIZE> payload; ; Source: RTI DDS Examples
49 Example 2 File Hello.java: Main program, installs new type and starts publishers & subscribers public class Hello { public static void main(string[] argv) { CommandLineArguments args = new CommandLineArguments(); System.out.println("Hello Example Application"); // Finally start the application startapplication(args); System.out.println("Done."); Source: RTI DDS Examples
50 Example 2 File Hello.java: Main program, installs new type and starts publishers & subscribers private static void startapplication(final CommandLineArguments arg) { new participant DomainParticipant participant = DomainParticipantFactory.get_instance().create_participant( arg.domainid, DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT, null, // listener StatusKind.STATUS_MASK_NONE); HelloWorldTypeSupport.register_type(participant, register type HelloWorldTypeSupport.get_type_name()); create topic Topic topic = participant.create_topic( arg.topicname, HelloWorldTypeSupport.get_type_name(), DomainParticipant.TOPIC_QOS_DEFAULT, null, // listener StatusKind.STATUS_MASK_NONE); generated class definition generated class definition Source: RTI DDS Examples
51 Example 2 File Hello.java: Main program, installs new type and starts publishers & subscribers HelloPublisher publisher = new HelloPublisher( participant, topic, arg.verbose, arg.datasize, arg.samplecount); create publisher publisher.writesamples(); write samples HelloSubscriber subscriber = new HelloSubscriber( participant, topic, arg.verbose, arg.samplecount); create subsriber subscriber.waitfortermination(); wait until all samples have been received /* Shutdown, when samplecount is finite */ if(participant!= null) { participant.delete_contained_entities(); DomainParticipantFactory.TheParticipantFactory. delete_participant(participant); clean up DomainParticipantFactory.finalize_instance(); Source: RTI DDS Examples
52 File HelloPublisher.java Example 2 public class HelloPublisher { // Maximum consecutive write error after stopping the write process private static final int MAX_CONSECUTIVE_WRITE_ERROR = 5; private HelloWorldDataWriter _thedatawriter; private int _thedatasize; private int _theverbose; private int _thesamplecount = 0; Reference to generated class // ************************************************************************ /** * Builds a new HelloPublisher object and initialize the inner DDS * entities. * This method only creates the entities, but it does not actually write * the data. * To write the data, use the method run(). * participant the DDS Domain participant topic the DDS topic verbose an integer to control the output verbosity datasize the size of the payload data */ public HelloPublisher(DomainParticipant participant, Topic topic, int verbose, int datasize, int samplecount) { _thedatasize = datasize; _theverbose = verbose; _thesamplecount = samplecount; Source: RTI DDS Examples
53 File HelloPublisher.java Example 2 just like before... Publisher publisher = participant.create_publisher( DomainParticipant.PUBLISHER_QOS_DEFAULT, null, // listener StatusKind.STATUS_MASK_NONE); if (publisher == null) { System.err.println("! Unable to create DDS Publisher"); throw new RuntimeException("HelloPublisher creation failed"); _thedatawriter = (HelloWorldDataWriter) publisher.create_datawriter(topic, Publisher.DATAWRITER_QOS_DEFAULT, null, // listener StatusKind.STATUS_MASK_NONE); reference to generated class Source: RTI DDS Examples
54 File HelloPublisher.java Example 2 void writesamples() { HelloWorld instance = new HelloWorld(); // Initialize the data instance.prefix = "Hello world"; instance.payload.setsize(_thedatasize); byte arr[] = (byte [])instance.payload.getprimitivearray(); for (int i = 0; i < _thedatasize; ++i) { arr[i] = (byte)(i % 0xff); Source: RTI DDS Examples System.out.println("Sending data...\n"); int consecutiveerrors = 0; for (instance.sample_id = 0;; ++(instance.sample_id) ) { try { _thedatawriter.write(instance, InstanceHandle_t.HANDLE_NIL); catch(retcode_error e) { System.err.println("! Write error " + e.getclass().tostring() + ": " + e.getmessage()); if (++consecutiveerrors > MAX_CONSECUTIVE_WRITE_ERROR) { System.out.println("! Reached maximum number of failure, " + "stopping writer..."); return; // Always clear the error count in case of successful write consecutiveerrors = 0; if (_theverbose > 0 && (instance.sample_id % 10000) == 0) { System.out.println("Sent " + Integer.toString(instance.sample_id) + " samples..."); if (_thesamplecount!= 0 && (instance.sample_id >= _thesamplecount)) { System.out.println("\nSent " + Integer.toString(instance.sample_id) + " samples."); return;
55 File HelloSubscriber.java public class HelloSubscriber implements DataReaderListener { public HelloSubscriber(DomainParticipant participant, Topic topic, int verbose, int samplecount) { for the callbacks... Example 2 Subscriber subscriber = participant.create_subscriber( DomainParticipant.SUBSCRIBER_QOS_DEFAULT, null, // listener StatusKind.STATUS_MASK_NONE); generated class definition _reader = (HelloWorldDataReader) subscriber.create_datareader( topic, Subscriber.DATAREADER_QOS_DEFAULT, this, StatusKind.STATUS_MASK_ALL); Source: RTI DDS Examples
56 File HelloSubscriber.java public void waitfortermination() { waits for end of transmission Example 2 for (;;) { try { Thread.sleep(POLL_PERIOD_MILLISEC); // If this is the first sample received, mark the sample ID and // get the time /* Then calculate the statistics */ catch (InterruptedException e) { /*ignore*/ Source: RTI DDS Examples
57 File HelloSubscriber.java Example 2 public void on_data_available(datareader reader) { HelloWorldDataReader HelloWorldReader = (HelloWorldDataReader)reader; if (_thesamplercvdmax!= 0 && (_thesamplercvdcount >= _thesamplercvdmax)) { return; try { HelloWorldReader.take( _dataseq, _infoseq, get data ResourceLimitsQosPolicy.LENGTH_UNLIMITED, SampleStateKind.ANY_SAMPLE_STATE, ViewStateKind.ANY_VIEW_STATE, InstanceStateKind.ANY_INSTANCE_STATE); for (int i = 0; i < _dataseq.size(); ++i) { SampleInfo info = (SampleInfo)_infoSeq.get(i); the callback function generated class if (info.valid_data) { _processdata((helloworld)_dataseq.get(i)); catch (RETCODE_NO_DATA nodata) { // No data to process finally { HelloWorldReader.return_loan(_dataSeq, _infoseq); Source: RTI DDS Examples
58 File HelloSubscriber.java public void on_sample_lost(datareader reader, SampleLostStatus status) { ++_thesamplelost; if (_theverbose > 0) { System.out.println("->Callback: sample lost."); public void on_requested_deadline_missed (DataReader reader, RequestedDeadlineMissedStatus status) { if (_theverbose > 0) { System.out.println("->Callback: requested deadline missed."); public void on_requested_incompatible_qos (DataReader reader, RequestedIncompatibleQosStatus status) { if (_theverbose > 0) { System.out.println("->Callback: requested incompatible QoS."); public void on_sample_rejected (DataReader reader, SampleRejectedStatus status) { if (_theverbose > 0) { System.out.println("->Callback: sample rejected."); public void on_liveliness_changed (DataReader reader, LivelinessChangedStatus status) { if (_theverbose > 0) { System.out.println("->Callback: liveliness changed."); Example 2 the callback function for lost samples the callback function for missed deadlines the callback function incompatible QoS the callback function used if the receiver does not want a sample the callback function called if the data turns dead public void on_subscription_matched (DataReader reader, SubscriptionMatchedStatus status) { if (_theverbose > 0) { System.out.println("->Callback: subscription matched."); Source: RTI DDS Examples
59 File HelloWorld.java (generated) Example 2 public class HelloWorld implements Copyable { public HelloWorld(HelloWorld other) { this(); copy_from(other); public static Object create() { return new HelloWorld(); public boolean equals(object o) { public Object copy_from(object src) { return this; public String tostring(string desc, int indent) {
60 File HelloWorldTypeSupport.java (generated) Example 2 public class HelloWorldTypeSupport extends TypeSupportImpl { private static final String TYPE_NAME = "HelloWorld"; private static final HelloWorldTypeSupport _singleton = new HelloWorldTypeSupport(); public static String get_type_name() { return _singleton.get_type_namei(); public static void register_type(domainparticipant participant, String type_name) { _singleton.register_typei(participant, type_name); public static void unregister_type(domainparticipant participant, String type_name) { _singleton.unregister_typei(participant, type_name); public static HelloWorldTypeSupport get_instance() { return _singleton; public static HelloWorldTypeSupport getinstance() { return get_instance(); public Object create_data() { return new HelloWorld(); public void destroy_data(object data) { return; public Object create_key() { return new HelloWorld(); public void destroy_key(object key) { return; public Object copy_data(object destination, Object source) { HelloWorld typeddst = (HelloWorld) destination; HelloWorld typedsrc = (HelloWorld) source; return typeddst.copy_from(typedsrc);
61 File HelloWorldDataWriter.java (generated) Example 2 public class HelloWorldDataWriter extends DataWriterImpl { public InstanceHandle_t register_instance(helloworld instance_data) { return register_instance_untyped(instance_data);. public void unregister_instance(helloworld instance_data, InstanceHandle_t handle) { unregister_instance_untyped(instance_data, handle); public void write(helloworld instance_data, InstanceHandle_t handle) { write_untyped(instance_data, handle); public void dispose(helloworld instance_data, InstanceHandle_t instance_handle){ dispose_untyped(instance_data, instance_handle); public void get_key_value(helloworld key_holder, InstanceHandle_t handle) { get_key_value_untyped(key_holder, handle); public InstanceHandle_t lookup_instance(helloworld key_holder) { return lookup_instance_untyped(key_holder); /*package*/ HelloWorldDataWriter(long native_writer, DataWriterListener listener, int mask, TypeSupportImpl type) { super(native_writer, listener, mask, type);
62 Example 2 File HelloWorldDataWriter.java (generated) public class HelloWorldDataReader extends DataReaderImpl { public void read(helloworldseq received_data, SampleInfoSeq info_seq, int max_samples, int sample_states, int view_states, int instance_states) { read_untyped(received_data, info_seq, max_samples, sample_states, view_states, instance_states); public void take(helloworldseq received_data, SampleInfoSeq info_seq, int max_samples, int sample_states, int view_states, int instance_states) { take_untyped(received_data, info_seq, max_samples, sample_states, view_states, instance_states); public void read_next_sample(helloworld received_data, SampleInfo sample_info) { read_next_sample_untyped(received_data, sample_info); public void get_key_value(helloworld key_holder, InstanceHandle_t handle){ get_key_value_untyped(key_holder, handle); public InstanceHandle_t lookup_instance(helloworld key_holder) { return lookup_instance_untyped(key_holder); /*package*/ HelloWorldDataReader(long native_reader, DataReaderListener listener, int mask, TypeSupportImpl data_type) { super(native_reader, listener, mask, data_type);
63 Example 3 Publishing complex, user-defined data types Usage reflection to access complex data Source: RTI DDS Examples
64 Example 3 Publisher Sends n packets to publisher Source: RTI DDS Examples
65 Example 3 Subscriber Computes statistic about received packets Source: RTI DDS Examples
66 File HelloWorldType.java: Dynamically generate type Example 3 public final class HelloWorldType { public static String gettypename() { return "HelloWorld";... public static TypeCode create() { TypeCodeFactory factory = TypeCodeFactory.get_instance(); TypeCode stringtc = null; try { stringtc = factory.create_string_tc(hellodds_max_string_size); TypeCode sequencetc = null; sequencetc = factory.create_sequence_tc(hellodds_max_payload_size, factory.get_primitive_tc(tckind.tk_octet)); TypeCode structtc = null; structtc = factory.create_struct_tc("helloworld", new StructMember[0]); structtc.add_member("prefix", // name (short)-1, // initial_id stringtc, // Typecode TypeCode.NONKEY_MEMBER, // member_flags (short)-1, // access false, // is_pointer (short)-1); // bits structtc.add_member("sampleid", (short)-1, factory.get_primitive_tc(tckind.tk_long), TypeCode.NONKEY_MEMBER, (short)-1, false, (short)-1); structtc.add_member("payload", (short)-1, sequencetc, TypeCode.NONKEY_MEMBER, (short)-1, false, (short)-1); return structtc; new struct member new struct member new type new struct member
67 Example 3 File Hello.java: Main program, installs new type and starts publishers & subscribers public class Hello { public static void main(string[] argv) { CommandLineArguments args = new CommandLineArguments(); System.out.println("Hello Example Application"); // Finally start the application startapplication(args); System.out.println("Done."); Source: RTI DDS Examples
68 Example 3 File Hello.java: Main program, installs new type and starts publishers & subscribers private static void startapplication(final CommandLineArguments arg) { new participant DomainParticipant participant = DomainParticipantFactory.get_instance().create_participant( arg.domainid, DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT, null, // listener StatusKind.STATUS_MASK_NONE); // Create TypeCode, DynamicDataTypeSupport for dynamic data type TypeCode type = HelloWorldType.create(); if (type == null) { System.err.println("! Unable to create dynamic type code"); return; dynamically generate class definition // Create the Dynamic data type support object DynamicDataTypeSupport typesupport = new DynamicDataTypeSupport( type, DynamicDataTypeSupport.TYPE_PROPERTY_DEFAULT); // Register type before creating topic typesupport.register_type(participant, HelloWorldType.getTypeName()); register type Source: RTI DDS Examples
69 Example 3 File Hello.java: Main program, installs new type and starts publishers & subscribers create topic Topic topic = participant.create_topic( arg.topicname, HelloWorldTypeSupport.get_type_name(), DomainParticipant.TOPIC_QOS_DEFAULT, null, // listener StatusKind.STATUS_MASK_NONE); Source: RTI DDS Examples
70 Example 3 File Hello.java: Main program, installs new type and starts publishers & subscribers HelloPublisher publisher = new HelloPublisher( participant, topic, arg.verbose, arg.datasize, arg.samplecount); create publisher publisher.writesamples(); write samples HelloSubscriber subscriber = new HelloSubscriber( participant, topic, arg.verbose, arg.samplecount); create subsriber subscriber.waitfortermination(); wait until all samples have been received /* Shutdown, when samplecount is finite */ if(participant!= null) { participant.delete_contained_entities(); DomainParticipantFactory.TheParticipantFactory. delete_participant(participant); clean up DomainParticipantFactory.finalize_instance(); Source: RTI DDS Examples
71 File HelloPublisher.java Example 3 public class HelloPublisher { // Maximum consecutive write error after stopping the write process private static final int MAX_CONSECUTIVE_WRITE_ERROR = 5; private DynamicDataWriter private int private int private DynamicData _thedatawriter; _theverbose; _thesamplecount; _theinstance; Reference to dynamic classes // ************************************************************************ /** * Builds a new HelloPublisher object and initialize the inner DDS * entities. * This method only creates the entities, but it does not actually write * the data. * To write the data, use the method run(). * participant the DDS Domain participant topic the DDS topic verbose an integer to control the output verbosity datasize the size of the payload data */ public HelloPublisher(DomainParticipant participant, Topic topic, TypeCode typecode, int verbose, int datasize, int samplecount) { _theverbose = verbose; _thesamplecount = samplecount; Source: RTI DDS Examples
72 File HelloPublisher.java Example 3 just like before... Publisher publisher = participant.create_publisher( DomainParticipant.PUBLISHER_QOS_DEFAULT, null, // listener StatusKind.STATUS_MASK_NONE); if (publisher == null) { System.err.println("! Unable to create DDS Publisher"); throw new RuntimeException("HelloPublisher creation failed"); _thedatawriter = (DynamicDataWriter) publisher.create_datawriter(topic, Publisher.DATAWRITER_QOS_DEFAULT, null, // listener StatusKind.STATUS_MASK_NONE); reference to dynamic writer Source: RTI DDS Examples
73 File HelloPublisher.java Example 3 _theinstance = new DynamicData(typeCode, DynamicData.PROPERTY_DEFAULT); /* The DynamicDataType has been defined (in HelloWorldType.cxx) to hold * a structure like the following one: * struct HelloWorld { * string<64> prefix; * long sampleid; * sequence<octet, 8192> payload; * ; */ _theinstance.set_string("prefix", DynamicData.MEMBER_ID_UNSPECIFIED, "Hello World!"); _theinstance.set_int("sampleid", DynamicData.MEMBER_ID_UNSPECIFIED, 0); byte [] payload = new byte[datasize]; for (int i = 0; i < datasize; ++i) { payload[i] = (byte)(i % 0xff); ByteSeq byteseq = new ByteSeq(payload); _theinstance.set_byte_seq("payload", DynamicData.MEMBER_ID_UNSPECIFIED, byteseq); write one field of the data write one field of the data write one field of the data write one field of the data Source: RTI DDS Examples
74 File HelloPublisher.java Example 3 void writesamples() { InstanceHandle_t instance_handle = InstanceHandle_t.HANDLE_NIL; try { _thedatawriter.write(_theinstance, instance_handle); send data catch(retcode_error e) { System.err.println("! Write error " + e.getclass().tostring() + ": " + e.getmessage()); if (++consecutiveerrors > MAX_CONSECUTIVE_WRITE_ERROR) { System.out.println("! Reached maximum number of failure, " + "stopping writer..."); return; Source: RTI DDS Examples
75 File HelloSubscriber.java public class HelloSubscriber implements DataReaderListener { public HelloSubscriber(DomainParticipant participant, Topic topic, int verbose, int samplecount) { for the callbacks... Example 3 Subscriber subscriber = participant.create_subscriber( DomainParticipant.SUBSCRIBER_QOS_DEFAULT, null, // listener StatusKind.STATUS_MASK_NONE); _reader = (DynamicDataReader) subscriber.create_datareader( topic, Subscriber.DATAREADER_QOS_DEFAULT, this, StatusKind.STATUS_MASK_ALL); dynamic class definition Source: RTI DDS Examples
76 File HelloSubscriber.java public void waitfortermination() { waits for end of transmission Example 3 for (;;) { try { Thread.sleep(POLL_PERIOD_MILLISEC); // If this is the first sample received, mark the sample ID and // get the time /* Then calculate the statistics */ catch (InterruptedException e) { /*ignore*/ Source: RTI DDS Examples
77 File HelloSubscriber.java Example 3 public void on_data_available(datareader reader) { DynamicDataReader HelloWorldReader = (DynamicDataReader)reader; if (_thesamplercvdmax!= 0 && (_thesamplercvdcount >= _thesamplercvdmax)) { return; try { HelloWorldReader.take( _dataseq, _infoseq, get data the callback function ResourceLimitsQosPolicy.LENGTH_UNLIMITED, SampleStateKind.ANY_SAMPLE_STATE, ViewStateKind.ANY_VIEW_STATE, InstanceStateKind.ANY_INSTANCE_STATE); dynamic reader for (int i = 0; i < _dataseq.size(); ++i) { SampleInfo info = (SampleInfo)_infoSeq.get(i); access one field of the structure if (info.valid_data) { _processdata((dynamicdata)_dataseq.get(i)); catch (RETCODE_NO_DATA nodata) { // No data to process finally { HelloWorldReader.return_loan(_dataSeq, _infoseq); Source: RTI DDS Examples
78 File HelloSubscriber.java public void on_sample_lost(datareader reader, SampleLostStatus status) { ++_thesamplelost; if (_theverbose > 0) { System.out.println("->Callback: sample lost."); public void on_requested_deadline_missed (DataReader reader, RequestedDeadlineMissedStatus status) { if (_theverbose > 0) { System.out.println("->Callback: requested deadline missed."); public void on_requested_incompatible_qos (DataReader reader, RequestedIncompatibleQosStatus status) { if (_theverbose > 0) { System.out.println("->Callback: requested incompatible QoS."); public void on_sample_rejected (DataReader reader, SampleRejectedStatus status) { if (_theverbose > 0) { System.out.println("->Callback: sample rejected."); public void on_liveliness_changed (DataReader reader, LivelinessChangedStatus status) { if (_theverbose > 0) { System.out.println("->Callback: liveliness changed."); Example 3 the callback function for lost samples the callback function for missed deadlines the callback function incompatible QoS the callback function used if the receiver does not want a sample the callback function called if the data turns dead public void on_subscription_matched (DataReader reader, SubscriptionMatchedStatus status) { if (_theverbose > 0) { System.out.println("->Callback: subscription matched."); Source: RTI DDS Examples
RTI Monitoring Library Getting Started Guide
RTI Monitoring Library Getting Started Guide Version 5.1.0 2011-2013 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. December 2013. Trademarks Real-Time Innovations,
More informationFirst Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science
First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca
More informationRepeat Success, Not Mistakes; Use DDS Best Practices to Design Your Complex Distributed Systems
WHITEPAPER Repeat Success, Not Mistakes; Use DDS Best Practices to Design Your Complex Distributed Systems Abstract RTI Connext DDS (Data Distribution Service) is a powerful tool that lets you efficiently
More informationResource Utilization of Middleware Components in Embedded Systems
Resource Utilization of Middleware Components in Embedded Systems 3 Introduction System memory, CPU, and network resources are critical to the operation and performance of any software system. These system
More informationUML Profile for DDS. a tutorial for OMG Specification in Government Workshop (Real-Time & Embedded Systems) July 13, 2009
UML Profile for DDS a tutorial for OMG Specification in Government Workshop (Real-Time & Embedded Systems) July 13, 2009 Prepared by: Sam Mancarella (Sparx Systems) Presented by: Angelo Corsaro (PrismTech)
More informationJava Cheatsheet. http://introcs.cs.princeton.edu/java/11cheatsheet/ Tim Coppieters Laure Philips Elisa Gonzalez Boix
Java Cheatsheet http://introcs.cs.princeton.edu/java/11cheatsheet/ Tim Coppieters Laure Philips Elisa Gonzalez Boix Hello World bestand genaamd HelloWorld.java naam klasse main methode public class HelloWorld
More informationDATA SHARING AND ACCESS WITH A CORBA DATA DISTRIBUTION SERVICE IMPLEMENTATION
DATA SHARING AND ACCESS WITH A CORBA DATA DISTRIBUTION SERVICE IMPLEMENTATION A THESIS SUBMITTED TO THE GRADUATE SCHOOL OF NATURAL AND APPLIED SCIENCES OF THE MIDDLE EAST TECHNICAL UNIVERSITY BY MUSTAFA
More informationUnifying the Global Data Space using DDS and SQL
Unifying the Global Data Space using and SQL OMG RT Embedded Systems Workshop 13 July 2006 Gerardo Pardo-Castellote, Ph.D. CTO gerardo.pardo@rti.com www.rti.com Fernando Crespo Sanchez fernando.crespo@rti.com
More informationpublic static void main(string[] args) { System.out.println("hello, world"); } }
Java in 21 minutes hello world basic data types classes & objects program structure constructors garbage collection I/O exceptions Strings Hello world import java.io.*; public class hello { public static
More informationThe BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications
The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications Joshua Ellul jellul@imperial.ac.uk Overview Brief introduction to Body Sensor Networks BSN Hardware
More informationUsing DDS to Enable The Real-Time Enterprise Service Bus (RT-ESB)
Using DDS to Enable The Real-Time Enterprise Service Bus (RT-ESB) Rajive Joshi, Ph. D. Gerardo Pardo-Castellote, Ph.D. Real-Time Innovations, Inc OMG Real-time and Embedded Systems Workshop Arlington,
More informationDistributed Embedded Systems
Distributed Embedded Systems Computer Architecture and Operating Systems 2 Literature 1) George Coulouris, Jean Dollimore, Tim Kindberg: Distributed Systems: Concepts and Design. Addison-Wesley Longman,
More informationIntroduction to Java
Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high
More informationRTI Routing Service. Release Notes
RTI Routing Service Release Notes Version 5.0.0 2012 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. August 2012. Trademarks Real-Time Innovations, RTI, and Connext are
More informationA Comparison and Mapping of Data Distribution Service and High-Level Architecture
WHITEPAPER A Comparison and Mapping of Data Distribution Service and High-Level Architecture Abstract The OMG Data-Distribution Service (DDS) is an emerging specification for publish-subscribe datadistribution
More informationRTI Real-Time Connect. Release Notes
RTI Real-Time Connect Release Notes Version 4.5f 2012 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. March 2012. Trademarks Real-Time Innovations, RTI, and Connext are
More informationJava Crash Course Part I
Java Crash Course Part I School of Business and Economics Institute of Information Systems HU-Berlin WS 2005 Sebastian Kolbe skolbe@wiwi.hu-berlin.de Overview (Short) introduction to the environment Linux
More informationCommunicating with a Barco projector over network. Technical note
Communicating with a Barco projector over network Technical note MED20080612/00 12/06/2008 Barco nv Media & Entertainment Division Noordlaan 5, B-8520 Kuurne Phone: +32 56.36.89.70 Fax: +32 56.36.883.86
More informationGetting Started with the Internet Communications Engine
Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2
More informationOMG Data-Distribution Service: Architectural Overview
OMG Data-Distribution Service: Architectural Overview Gerardo Pardo-Castellote, Ph.D. Real-Time Innovations, Inc. gerardo@rti.com Abstract The OMG Data-Distribution Service (DDS) is an emerging specification
More informationRTI Data Distribution Service
RTI Data Distribution Service The Real-Time Publish-Subscribe Middleware Getting Started Guide Version 4.5c This Guide describes how to download and install RTI Data Distribution Service. It also lays
More informationDDS and SOA Interfaces to ESB
DDS and SOA Interfaces to ESB NCOIC Plenary, VA Beach 29 Mar 2007 Joe Schlesselman NCOIC OS&P WG Chair joe.schlesselman@rti.com www.rti.com Gerardo Pardo-Castellote CTO & Co-Author DDS Specification gerardo.pardo@rti.com
More informationA Fully Standards-Based Approach to Logging High-Throughput Distributed Real-Time Data. Leveraging the DDS and SQL Standards
A Fully Standards-Based Approach to Logging High-Throughput Distributed Real-Time Data Leveraging the and SQL Standards Mark A. Hamilton And Edwin de Jong Real-Time Innovations 3975 Freedom Circle Santa
More informationTutorial: Getting Started
9 Tutorial: Getting Started INFRASTRUCTURE A MAKEFILE PLAIN HELLO WORLD APERIODIC HELLO WORLD PERIODIC HELLO WORLD WATCH THOSE REAL-TIME PRIORITIES THEY ARE SERIOUS SUMMARY Getting started with a new platform
More informationA Comparison and Mapping of. Data Distribution Service and High-Level Architecture
A Comparison and Mapping of Data Distribution Service and High-Level Architecture Rajive Joshi, Ph.D. Gerardo-Pardo Castellote, Ph.D. Real-Time Innovations, Inc. 3975 Freedom Circle, Santa Clara, CA 95054
More informationRTI Database Integration Service. Release Notes
RTI Database Integration Service Release Notes Version 5.2.0 2015 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. June 2015. Trademarks Real-Time Innovations, RTI, NDDS,
More informationWhat can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.
What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications. 2 Contents: Abstract 3 What does DDS do 3 The Strengths of DDS 4
More informationECE 122. Engineering Problem Solving with Java
ECE 122 Engineering Problem Solving with Java Introduction to Electrical and Computer Engineering II Lecture 1 Course Overview Welcome! What is this class about? Java programming somewhat software somewhat
More informationScanner. It takes input and splits it into a sequence of tokens. A token is a group of characters which form some unit.
Scanner The Scanner class is intended to be used for input. It takes input and splits it into a sequence of tokens. A token is a group of characters which form some unit. For example, suppose the input
More informationCoding Standard for Java
Coding Standard for Java 1. Content 1. Content 1 2. Introduction 1 3. Naming convention for Files/Packages 1 4. Naming convention for Classes, Interfaces, Members and Variables 2 5. File Layout (.java)
More informationCS 106 Introduction to Computer Science I
CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper
More informationPemrograman Dasar. Basic Elements Of Java
Pemrograman Dasar Basic Elements Of Java Compiling and Running a Java Application 2 Portable Java Application 3 Java Platform Platform: hardware or software environment in which a program runs. Oracle
More informationOMG Data-Distribution Service (DDS): Architectural Overview
OMG -Distribution Service (DDS): Architectural Overview Gerardo Pardo-Castellote Real-Time Innovations, Inc. (RTI) Phone: 1-408-734-4200, x106 Email: pardo@rti.com Topic Areas Software Architectures, Reusability,
More informationIntel EP80579 Software for Security Applications on Intel QuickAssist Technology Cryptographic API Reference
Intel EP80579 Software for Security Applications on Intel QuickAssist Technology Cryptographic API Reference Automatically generated from sources, May 19, 2009. Reference Number: 320184, Revision -003
More informationManual. Programmer's Guide for Java API
2013-02-01 1 (15) Programmer's Guide for Java API Description This document describes how to develop Content Gateway services with Java API. TS1209243890 1.0 Company information TeliaSonera Finland Oyj
More informationEmbedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive
More informationHandout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.
Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java
More informationJava from a C perspective. Plan
Java from a C perspective Cristian Bogdan 2D2052/ingint04 Plan Objectives and Book Packages and Classes Types and memory allocation Syntax and C-like Statements Object Orientation (minimal intro) Exceptions,
More informationRTI Analyzer. Getting Started Guide
RTI Analyzer Getting Started Guide Version 5.1.0 2006-2013 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. December 2013. Trademarks Real-Time Innovations, RTI, and Connext
More informationThe Data Distribution Service [Universal Standard for Real-Time Data Sharing]
The Data Distribution Service [Universal Standard for Real-Time Data Sharing] Angelo CORSARO, Ph.D. Chief Technology Officer OMG DDS Sig Co-Chair PrismTech angelo.corsaro@prismtech.com Speaker Short Bio
More informationOPC UA OPC Unified Architecture
OPC Unified Architecture Content 1. Motivation 2. An Overview of Distributed Software Architecture Approaches 2.1 Pro & Contra Middleware 2.2 Message-Based Architectures 2.3 Service-Based Architectures
More informationBuilding a Multi-Threaded Web Server
Building a Multi-Threaded Web Server In this lab we will develop a Web server in two steps. In the end, you will have built a multi-threaded Web server that is capable of processing multiple simultaneous
More informationNetwork Communication
Network Communication Outline Sockets Datagrams TCP/IP Client-Server model OSI Model Sockets Endpoint for bidirectional communication between two machines. To connect with each other, each of the client
More informationTopics. Parts of a Java Program. Topics (2) CS 146. Introduction To Computers And Java Chapter Objectives To understand:
Introduction to Programming and Algorithms Module 2 CS 146 Sam Houston State University Dr. Tim McGuire Introduction To Computers And Java Chapter Objectives To understand: the meaning and placement of
More informationChapter 1 Java Program Design and Development
presentation slides for JAVA, JAVA, JAVA Object-Oriented Problem Solving Third Edition Ralph Morelli Ralph Walde Trinity College Hartford, CT published by Prentice Hall Java, Java, Java Object Oriented
More informationJava Interview Questions and Answers
1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java
More information3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version
Version 3.5 JEFFERSON LAB Data Acquisition Group cmsg Developer s Guide J E F F E R S O N L A B D A T A A C Q U I S I T I O N G R O U P cmsg Developer s Guide Elliott Wolin wolin@jlab.org Carl Timmer timmer@jlab.org
More informationWRITING DATA TO A BINARY FILE
WRITING DATA TO A BINARY FILE TEXT FILES VS. BINARY FILES Up to now, we have looked at how to write and read characters to and from a text file. Text files are files that contain sequences of characters.
More informationReal-time Sensor Data Analysis Processing of a Soccer Game Using OMG DDS Publish/Subscribe Middleware
Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, 37212 Real-time Sensor Data Analysis Processing of a Soccer Game Using OMG DDS Publish/Subscribe Middleware Kyoungho
More informationIntroduction to Object-Oriented Programming
Introduction to Object-Oriented Programming Programs and Methods Christopher Simpkins chris.simpkins@gatech.edu CS 1331 (Georgia Tech) Programs and Methods 1 / 8 The Anatomy of a Java Program It is customary
More informationJava Memory Model: Content
Java Memory Model: Content Memory Models Double Checked Locking Problem Java Memory Model: Happens Before Relation Volatile: in depth 16 March 2012 1 Java Memory Model JMM specifies guarantees given by
More informationCreating a Simple, Multithreaded Chat System with Java
Creating a Simple, Multithreaded Chat System with Java Introduction by George Crawford III In this edition of Objective Viewpoint, you will learn how to develop a simple chat system. The program will demonstrate
More informationSophos Mobile Control Web service guide
Sophos Mobile Control Web service guide Product version: 3.5 Document date: July 2013 Contents 1 About Sophos Mobile Control... 3 2 Prerequisites... 4 3 Server-side implementation... 5 4 Client-side implementation...
More informationBasic Java Constructs and Data Types Nuts and Bolts. Looking into Specific Differences and Enhancements in Java compared to C
Basic Java Constructs and Data Types Nuts and Bolts Looking into Specific Differences and Enhancements in Java compared to C 1 Contents Hello World Program Statements Explained Java Program Structure in
More informationA Data Centric Approach for Modular Assurance. Workshop on Real-time, Embedded and Enterprise-Scale Time-Critical Systems 23 March 2011
A Data Centric Approach for Modular Assurance The Real-Time Middleware Experts Workshop on Real-time, Embedded and Enterprise-Scale Time-Critical Systems 23 March 2011 Gabriela F. Ciocarlie Heidi Schubert
More informationJ a v a Quiz (Unit 3, Test 0 Practice)
Computer Science S-111a: Intensive Introduction to Computer Science Using Java Handout #11 Your Name Teaching Fellow J a v a Quiz (Unit 3, Test 0 Practice) Multiple-choice questions are worth 2 points
More informationCrash Course in Java
Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is
More informationIntroduction to Programming
Introduction to Programming Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk Spring 2015 Week 2b: Review of Week 1, Variables 16 January 2015 Birkbeck
More informationProgramming Languages CIS 443
Course Objectives Programming Languages CIS 443 0.1 Lexical analysis Syntax Semantics Functional programming Variable lifetime and scoping Parameter passing Object-oriented programming Continuations Exception
More informationJava Programming Fundamentals
Lecture 1 Part I Java Programming Fundamentals Topics in Quantitative Finance: Numerical Solutions of Partial Differential Equations Instructor: Iraj Kani Introduction to Java We start by making a few
More informationCORBA Programming with TAOX11. The C++11 CORBA Implementation
CORBA Programming with TAOX11 The C++11 CORBA Implementation TAOX11: the CORBA Implementation by Remedy IT TAOX11 simplifies development of CORBA based applications IDL to C++11 language mapping is easy
More informationIntroduction Object-Oriented Network Programming CORBA addresses two challenges of developing distributed systems: 1. Making distributed application development no more dicult than developing centralized
More informationwww.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk
CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling
More informationJAVA - QUICK GUIDE. Java SE is freely available from the link Download Java. So you download a version based on your operating system.
http://www.tutorialspoint.com/java/java_quick_guide.htm JAVA - QUICK GUIDE Copyright tutorialspoint.com What is Java? Java is: Object Oriented Platform independent: Simple Secure Architectural- neutral
More informationOperating System Manual. Realtime Communication System for netx. Kernel API Function Reference. www.hilscher.com.
Operating System Manual Realtime Communication System for netx Kernel API Function Reference Language: English www.hilscher.com rcx - Kernel API Function Reference 2 Copyright Information Copyright 2005-2007
More informationA NOVEL RESOURCE EFFICIENT DMMS APPROACH
A NOVEL RESOURCE EFFICIENT DMMS APPROACH FOR NETWORK MONITORING AND CONTROLLING FUNCTIONS Golam R. Khan 1, Sharmistha Khan 2, Dhadesugoor R. Vaman 3, and Suxia Cui 4 Department of Electrical and Computer
More informationAddressing the Challenge of Distributed Interactive Simulation With Data Distribution Service
Addressing the Challenge of Distributed Interactive Simulation With Data Distribution Service Akram HAKIRI 1, 2, Pascal BERTHOU 1, 2, Thierry GAYRAUD 1,2 1 CNRS ; LAAS, 7, avenue du Colonel Roche, 31077
More informationBinary storage of graphs and related data
EÖTVÖS LORÁND UNIVERSITY Faculty of Informatics Department of Algorithms and their Applications Binary storage of graphs and related data BSc thesis Author: Frantisek Csajka full-time student Informatics
More informationExam 1 Review Questions
CSE 473 Introduction to Computer Networks Exam 1 Review Questions Jon Turner 10/2013 1. A user in St. Louis, connected to the internet via a 20 Mb/s (b=bits) connection retrieves a 250 KB (B=bytes) web
More informationUG102 EMBER APPLICATION FRAMEWORK DEVELOPER GUIDE
EMBER APPLICATION FRAMEWORK DEVELOPER GUIDE The Ember application framework is a body of embedded C code that can be configured by Ember AppBuilder to implement any ZigBee Cluster Library (ZCL) application.
More informationmatsimj An Overview of the new MATSim Implementation in Java Marcel Rieser VSP, TU Berlin 2.10.2006 rieser@vsp.tu-berlin.de
matsimj An Overview of the new MATSim Implementation in Java Marcel Rieser VSP, TU Berlin rieser@vsp.tu-berlin.de 2.10.2006 MATSim Seminar 2006 Villa Garbald 1. 6.10.2006 What we will talk about 2 Overview
More informationAn Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
More information1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders
1.00 Lecture 1 Course Overview Introduction to Java Reading for next time: Big Java: 1.1-1.7 Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders
More informationCS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
More informationRealizing Enterprise Integration Patterns in WebSphere
Universität Stuttgart Fakultät Informatik, Elektrotechnik und Informationstechnik Realizing Enterprise Integration Patterns in WebSphere Thorsten Scheibler, Frank Leymann Report 2005/09 October 20, 2005
More informationCS 378 Big Data Programming. Lecture 9 Complex Writable Types
CS 378 Big Data Programming Lecture 9 Complex Writable Types Review Assignment 4 - CustomWritable QuesIons/issues? Hadoop Provided Writables We ve used several Hadoop Writable classes Text LongWritable
More information! "# $%&'( ) * ).) "%&' 1* ( %&' ! "%&'2 (! ""$ 1! ""3($
! "# $%&'( ) * +,'-( ).) /"0'" 1 %&' 1* ( %&' "%&'! "%&'2 (! ""$ 1! ""3($ 2 ', '%&' 2 , 3, 4( 4 %&'( 2(! ""$ -5%&'* -2%&'(* ) * %&' 2! ""$ -*! " 4 , - %&' 3( #5! " 5, '56! "* * 4(%&'(! ""$ 3(#! " 42/7'89.:&!
More informationChannel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG
Channel Access Client Programming Andrew Johnson Computer Scientist, AES-SSG Channel Access The main programming interface for writing Channel Access clients is the library that comes with EPICS base Written
More informationServices. Relational. Databases & JDBC. Today. Relational. Databases SQL JDBC. Next Time. Services. Relational. Databases & JDBC. Today.
& & 1 & 2 Lecture #7 2008 3 Terminology Structure & & Database server software referred to as Database Management Systems (DBMS) Database schemas describe database structure Data ordered in tables, rows
More informationHow To Write A Program In Java (Programming) On A Microsoft Macbook Or Ipad (For Pc) Or Ipa (For Mac) (For Microsoft) (Programmer) (Or Mac) Or Macbook (For
Projet Java Responsables: Ocan Sankur, Guillaume Scerri (LSV, ENS Cachan) Objectives - Apprendre à programmer en Java - Travailler à plusieurs sur un gros projet qui a plusieurs aspects: graphisme, interface
More informationUniversal Event Monitor for SOA 5.2.0 Reference Guide
Universal Event Monitor for SOA 5.2.0 Reference Guide 2015 by Stonebranch, Inc. All Rights Reserved. 1. Universal Event Monitor for SOA 5.2.0 Reference Guide.............................................................
More informationjava Features Version April 19, 2013 by Thorsten Kracht
java Features Version April 19, 2013 by Thorsten Kracht Contents 1 Introduction 2 1.1 Hello World................................................ 2 2 Variables, Types 3 3 Input/Output 4 3.1 Standard I/O................................................
More informationI. INTRODUCTION. International Journal of Computer Science Trends and Technology (IJCST) Volume 3 Issue 2, Mar-Apr 2015
RESEARCH ARTICLE An Exception Monitoring Using Java Jyoti Kumari, Sanjula Singh, Ankur Saxena Amity University Sector 125 Noida Uttar Pradesh India OPEN ACCESS ABSTRACT Many programmers do not check for
More informationRTI Data Distribution Service
RTI Data Distribution Service The Real-Time Publish-Subscribe Middleware Release Notes Version 4.4d 2009 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. May 2009. Trademarks
More informationPersistent, Reliable JMS Messaging Integrated Into Voyager s Distributed Application Platform
Persistent, Reliable JMS Messaging Integrated Into Voyager s Distributed Application Platform By Ron Hough Abstract Voyager Messaging is an implementation of the Sun JMS 1.0.2b specification, based on
More informationUsing Files as Input/Output in Java 5.0 Applications
Using Files as Input/Output in Java 5.0 Applications The goal of this module is to present enough information about files to allow you to write applications in Java that fetch their input from a file instead
More informationChapter 2 Introduction to Java programming
Chapter 2 Introduction to Java programming 1 Keywords boolean if interface class true char else package volatile false byte final switch while throws float private case return native void protected break
More informationThe Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311
The Java Virtual Machine and Mobile Devices John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture
More informationSome Aspects of the Quality of Service Support Used in Multi Agent Systems on Middleware- Based Distributed Messaging
Some Aspects of the Quality of Service Support Used in Multi Agent Systems on Middleware- Based Distributed Messaging Jose-Luis Poza-Luján, Raúl Simarro-Fernández, Juan-Luis Posadas-Yagüe and José-Enrique
More informationFAQs. This material is built based on. Lambda Architecture. Scaling with a queue. 8/27/2015 Sangmi Pallickara
CS535 Big Data - Fall 2015 W1.B.1 CS535 Big Data - Fall 2015 W1.B.2 CS535 BIG DATA FAQs Wait list Term project topics PART 0. INTRODUCTION 2. A PARADIGM FOR BIG DATA Sangmi Lee Pallickara Computer Science,
More informationInfrastructure that supports (distributed) componentbased application development
Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication
More informationCSE 308. Coding Conventions. Reference
CSE 308 Coding Conventions Reference Java Coding Conventions googlestyleguide.googlecode.com/svn/trunk/javaguide.html Java Naming Conventions www.ibm.com/developerworks/library/ws-tipnamingconv.html 2
More informationCS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013
Oct 4, 2013, p 1 Name: CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 1. (max 18) 4. (max 16) 2. (max 12) 5. (max 12) 3. (max 24) 6. (max 18) Total: (max 100)
More information1) Which of the following is a constant, according to Java naming conventions? a. PI b. Test c. x d. radius
Programming Concepts Practice Test 1 1) Which of the following is a constant, according to Java naming conventions? a. PI b. Test c. x d. radius 2) Consider the following statement: System.out.println("1
More informationRPDO 1 TPDO 1 TPDO 5 TPDO 6 TPDO 7 TPDO 8
EN ZC - 6DI8DO CANopen I/O Module 6 Digital Input 8 Digital Output Or 8 Counters (3 bit) 8 Digital input 8 Digital output User Manual Contents: Features PDOs PDO Type Emergency Message Functional Diagrams
More informationHow to Install Java onto your system
How to Install Java onto your system 1. In your browser enter the URL: Java SE 2. Choose: Java SE Downloads Java Platform (JDK) 7 jdk-7- windows-i586.exe. 3. Accept the License Agreement and choose the
More informationMiddleware Lou Somers
Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,
More informationsveltest: A testing language
Look familiar? sveltest: A testing language Kaitlin Huben (Project Manager) Emily Hsia (Language Guru) Josh Lieberman (System Architect) Chris So (System Integrator) Mandy Swinton (Verifier and Validator)
More informationWhat is ODBC? Database Connectivity ODBC, JDBC and SQLJ. ODBC Architecture. More on ODBC. JDBC vs ODBC. What is JDBC?
What is ODBC? Database Connectivity ODBC, JDBC and SQLJ CS2312 ODBC is (Open Database Connectivity): A standard or open application programming interface (API) for accessing a database. SQL Access Group,
More informationJorix kernel: real-time scheduling
Jorix kernel: real-time scheduling Joris Huizer Kwie Min Wong May 16, 2007 1 Introduction As a specialized part of the kernel, we implemented two real-time scheduling algorithms: RM (rate monotonic) and
More information