代写Java:CUBA 英国paper - Java代写
发布时间:2021-07-25 20:38:56浏览次数:
import org.omg.CosNaming.NamingContextExt;import org.omg.CosNaming.NamingContextExtHelper;import java.util.*;import java.util.stream.Collectors;public class EnvironmentalCentreImpl extends EnvironmentalCentrePOA { public Set Agency agencies = new HashSet Agency (); public Set RegionalCentre regions = new HashSet RegionalCentre (); public EnvironmentalCentreImpl() { super(); } @Override public void raise_alarm(Reading alarm) { System.out.println( EnvironmentalCentre raises an alarm: + alarm); } @Override public void register_agency(String name, String contact, String region) { String[] args = { -ORBInitialPort , 1050 }; try { ORB orb = ORB.init(args, null); Object objref = orb.resolve_initial_references( NameService ); NamingContextExt ncref = NamingContextExtHelper.narrow(objref); Agency agency = AgencyHelper.narrow(ncref.resolve_str( Agency + name)); agencies.add(agency); System.out.println( EnvironmentalCentre Agency + name); } catch (Exception e) { System.out.println( EnvironmentalCentre Agency + name + failed ); } } @Override public void register_regional_centre(String name) { String[] args = { -ORBInitialPort , 1050 }; try { ORB orb = ORB.init(args, null); Object objref = orb.resolve_initial_references( NameService ); NamingContextExt ncref = NamingContextExtHelper.narrow(objref); RegionalCentre region = RegionalCentreHelper.narrow(ncref.resolve_str( Region + name)); regions.add(region); System.out.println( EnvironmentalCentre RegionalCentre + name); } catch (Exception e) { System.out.println( EnvironmentalCentre RegionalCentre + name + failed ); } } @Override public Reading[] get_readings() { List Reading list = new ArrayList Reading (); Set RegionalCentre sm = new HashSet RegionalCentre (); for (RegionalCentre region : regions) { try { list.addAll(Arrays.stream(region.get_readings()).collect(Collectors.toList())); } catch (Exception x) { sm.add(region); } } regions.removeAll(sm); return list.toArray(new Reading[list.size()]); }} 5.2 RegionalCentreImplpackage impl;import EnvMon.Monitor;import EnvMon.MonitorHelper;import EnvMon.Reading;import EnvMon.RegionalCentrePOA;import org.omg.CORBA.ORB;import org.omg.CORBA.Object;import org.omg.CosNaming.NamingContextExt;import org.omg.CosNaming.NamingContextExtHelper;import java.util.*;public class RegionalCentreImpl extends RegionalCentrePOA { public String name = null; public Queue Reading log = new LinkedList Reading (); public Set Monitor monitors = new HashSet Monitor (); public RegionalCentreImpl(String name) { super(); this.name = name; } @Override public String name() { return name; } @Override public Reading[] log() { return log.toArray(new Reading[log.size()]); } @Override public void raise_alarm(Reading alarm) { log.add(alarm); System.out.println( RegionalCentre [ + name + ] raises an alarm: + alarm); } @Override public Reading[] get_readings() { ArrayList Reading list = new ArrayList Reading (); Set Monitor sm = new HashSet Monitor (); for (Monitor monitor : monitors) { try { list.add(monitor.get_reading()); } catch (Exception x) { sm.add(monitor); } } monitors.removeAll(sm); return list.toArray(new Reading[list.size()]); } @Override public boolean add_monitor(String name, String location) { String[] args = { -ORBInitialPort , 1050 }; try { ORB orb = ORB.init(args, null); Object objref = orb.resolve_initial_references( NameService ); NamingContextExt ncref = NamingContextExtHelper.narrow(objref); Monitor monitor = MonitorHelper.narrow(ncref.resolve_str( Monitor + name)); if (monitors.stream().anyMatch(m - m.location().equals(monitor.location()))) return false; monitor.turn_on(); monitors.add(monitor); System.out.println( Region + this.name + Monitor + name); return true; } catch (Exception e) { System.out.println( Region + this.name + Monitor + name + failed ); return false; } }} 5.3 MonitorImplpackage impl;import EnvMon.MonitorPOA;import EnvMon.Reading;import java.util.Calendar;import java.util.Date;public class MonitorImpl extends MonitorPOA { private String name = null, location = null; private boolean power = false; public int value = 0; public MonitorImpl(String name, String location) { super(); this.name = name; this.location = location; } @Override public String name() { return name; } @Override public String location() { return location; } @Override public Reading get_reading() { if (!power) return null; Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); int date = calendar.get(Calendar.DAY_OF_YEAR); int time = calendar.get(Calendar.HOUR) * 60 + calendar.get(Calendar.MINUTE); return new Reading(date, time, value, name); } @Override public void turn_on() { power = true; System.out.println( Monitor [ + name + ] ( + location + ) is turned on ); } @Override public void turn_off() { power = false; System.out.println( Monitor [ + name + ] ( + location + ) is turned off ); } @Override public void reset() { power = false; value = 0; System.out.println( Monitor [ + name + ] ( + location + ) is reset ); }} 5.4 AgencyImplpackage impl;import EnvMon.AgencyPOA;import EnvMon.Reading;public class AgencyImpl extends AgencyPOA { private String name = null, contact = null, region = null; public AgencyImpl(String name, String contact, String region) { super(); this.name = name; this.contact = contact; this.region = region; } @Override public String name() { return name; } @Override public String contact() { return contact; } @Override public String region() { return region; } @Override public void raise_alarm(Reading alarm) { System.out.println( Agency [ + name + ] ( + contact + ) raises an alarm: + alarm); }} 5.5 EnvServerpackage server;import EnvMon.*;import impl.EnvironmentalCentreImpl;import org.omg.CORBA.ORB;import org.omg.CORBA.ORBPackage.InvalidName;import org.omg.CORBA.Object;import org.omg.CosNaming.NameComponent;import org.omg.CosNaming.NamingContextExt;import org.omg.CosNaming.NamingContextExtHelper;import org.omg.CosNaming.NamingContextPackage.CannotProceed;import org.omg.CosNaming.NamingContextPackage.NotFound;import org.omg.PortableServer.POA;import org.omg.PortableServer.POAHelper;import org.omg.PortableServer.POAManagerPackage.AdapterInactive;import org.omg.PortableServer.POAPackage.ServantNotActive;import org.omg.PortableServer.POAPackage.WrongPolicy;import javax.swing.*;import javax.swing.border.EmptyBorder;import javax.swing.text.BadLocationException;import javax.swing.text.DefaultHighlighter;import javax.swing.text.Highlighter;import javax.swing.text.Highlighter.HighlightPainter;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.HashSet;import java.util.Set;public class EnvServer { public static void main(String[] args) throws InvalidName, AdapterInactive, ServantNotActive, WrongPolicy, org.omg.CosNaming.NamingContextPackage.InvalidName, NotFound, CannotProceed { EnvironmentalCentreImpl impl = new EnvironmentalCentreImpl(); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { JFrame frame = new JFrame( Env ); JLabel label = new JLabel( EnvironmentalCentre ); JTextArea area = new JTextArea(); Highlighter highlighter = area.getHighlighter(); HighlightPainter painter = new DefaultHighlighter.DefaultHighlightPainter(Color.pink); area.setEditable(false); ActionListener task = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // Polls all Regional Centres upon request and displays the results of readings // returned, highlighting readings of concern StringBuilder sb = new StringBuilder(); Set Integer highlights = new HashSet Integer (); Integer len = null; for (Reading reading : impl.get_readings()) { if (reading.value 90) highlights.add(sb.length()); sb.append(reading.toString() + ); if (len == null) len = sb.length(); } area.setText(sb.toString()); for (Integer pos : highlights) { try { highlighter.addHighlight(pos, pos + len, painter); } catch (BadLocationException e1) { e1.printStackTrace(); } } // Allows agencies (e.g. the Environment Agency, local councils, local pressure // groups, etc.) to register for notifications in case of alarms for (RegionalCentre region : impl.regions) for (Reading reading : region.get_readings()) if (reading.value 90) for (Agency agency : impl.agencies) if (agency.region().equals(region.name())) agency.raise_alarm(reading); } }; Timer timer = new Timer(10000, task); timer.start(); label.setBorder(new EmptyBorder(8, 8, 8, 8)); frame.getContentPane().setLayout(new BorderLayout()); frame.getContentPane().add(BorderLayout.NORTH, label); frame.getContentPane().add(BorderLayout.CENTER, area); frame.setSize(300, 200); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); String[] init = { -ORBInitialPort , 1050 }; ORB orb = ORB.init(init, null); Object obj = orb.resolve_initial_references( RootPOA ); POA rootpoa = POAHelper.narrow(obj); rootpoa.the_POAManager().activate(); Object ref = rootpoa.servant_to_reference(impl); EnvironmentalCentre env = EnvironmentalCentreHelper.narrow(ref); Object objref = orb.resolve_initial_references( NameService ); NamingContextExt ncref = NamingContextExtHelper.narrow(objref); NameComponent path[] = ncref.to_name( Env ); ncref.rebind(path, env); System.out.println( EnvironmentalCentre ready. ); orb.run(); }} 5.6 RegionServerpackage server;import EnvMon.*;import impl.RegionalCentreImpl;import org.omg.CORBA.ORB;import org.omg.CORBA.ORBPackage.InvalidName;import org.omg.CORBA.Object;import org.omg.CosNaming.NameComponent;import org.omg.CosNaming.NamingContextExt;import org.omg.CosNaming.NamingContextExtHelper;import org.omg.CosNaming.NamingContextPackage.CannotProceed;import org.omg.CosNaming.NamingContextPackage.NotFound;import org.omg.PortableServer.POA;import org.omg.PortableServer.POAHelper;import org.omg.PortableServer.POAManagerPackage.AdapterInactive;import org.omg.PortableServer.POAPackage.ServantNotActive;import org.omg.PortableServer.POAPackage.WrongPolicy;import javax.swing.*;import javax.swing.border.EmptyBorder;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Arrays;import java.util.Calendar;import java.util.Date;import java.util.stream.Collectors;import java.util.stream.Stream;public class RegionServer { private static String name = null; private static EnvironmentalCentre env = null; public static void main(String[] args) throws InvalidName, AdapterInactive, ServantNotActive, WrongPolicy, org.omg.CosNaming.NamingContextPackage.InvalidName, NotFound, CannotProceed { if (args.length 1) { System.out.println( java RegionServer name ); return; } name = args[0]; RegionalCentreImpl impl = new RegionalCentreImpl(name); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { JFrame frame = new JFrame(name); JLabel label = new JLabel( Region: + name + | connect(env) + (connect_env() ? ok : failed )); JTextArea area = new JTextArea(); area.setEditable(false); ActionListener task = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String readings = Arrays.stream(impl.get_readings()).map(a - a.toString()) .collect(Collectors.joining( )); String log = impl.log.stream().map(a - a.toString()).collect(Collectors.joining( )); area.setText(readings + vvvv Log vvvv + log); // Triggers an alarm at the Environmental Centre when two alarms happen within a // specified time frame if (env != null) { Date date = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int time = calendar.get(Calendar.HOUR) * 60 + calendar.get(Calendar.MINUTE) 1; Stream Reading alarms = impl.log.stream().filter(a - a.time time); if (alarms.count() 1) { try { alarms.forEach(a - env.raise_alarm(a)); } catch (Exception ex) { env = null; } label.setText( Region: + name + | connect(env) failed ); } } } }; label.setBorder(new EmptyBorder(8, 8, 8, 8)); frame.getContentPane().setLayout(new BorderLayout()); frame.getContentPane().add(BorderLayout.NORTH, label); frame.getContentPane().add(BorderLayout.CENTER, area); frame.setSize(300, 200); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); Timer timer = new Timer(10000, task); timer.start(); } }); String[] init = { -ORBInitialPort , 1050 }; ORB orb = ORB.init(init, null); Object obj = orb.resolve_initial_references( RootPOA ); POA rootpoa = POAHelper.narrow(obj); rootpoa.the_POAManager().activate(); Object ref = rootpoa.servant_to_reference(impl); RegionalCentre region = RegionalCentreHelper.narrow(ref); Object objref = orb.resolve_initial_references( NameService ); NamingContextExt ncref = NamingContextExtHelper.narrow(objref); NameComponent path[] = ncref.to_name( Region + name); ncref.rebind(path, region); System.out.println( RegionalCentre + name + ready. ); orb.run(); } public static boolean connect_env() { String[] args = { -ORBInitialPort , 1050 }; try { ORB orb = ORB.init(args, null); Object objref = orb.resolve_initial_references( NameService ); NamingContextExt ncref = NamingContextExtHelper.narrow(objref); env = (EnvironmentalCentre) EnvironmentalCentreHelper.narrow(ncref.resolve_str( Env )); env.register_regional_centre(name); return true; } catch (Exception e) { e.printStackTrace(); return false; } }} 5.7 MonitorServerpackage server;import EnvMon.*;import impl.MonitorImpl;import org.omg.CORBA.ORB;import org.omg.CORBA.ORBPackage.InvalidName;import org.omg.CORBA.Object;import org.omg.CosNaming.NameComponent;import org.omg.CosNaming.NamingContextExt;import org.omg.CosNaming.NamingContextExtHelper;import org.omg.CosNaming.NamingContextPackage.CannotProceed;import org.omg.CosNaming.NamingContextPackage.NotFound;import org.omg.PortableServer.POA;import org.omg.PortableServer.POAHelper;import org.omg.PortableServer.POAManagerPackage.AdapterInactive;import org.omg.PortableServer.POAPackage.ServantNotActive;import org.omg.PortableServer.POAPackage.WrongPolicy;import javax.swing.*;import javax.swing.border.EmptyBorder;import java.awt.*;public class MonitorServer { private static String name = null, location = null; private static RegionalCentre region = null; private static int minute = 0; public static void main(String[] args) throws InvalidName, AdapterInactive, ServantNotActive, WrongPolicy, org.omg.CosNaming.NamingContextPackage.InvalidName, NotFound, CannotProceed { if (args.length 2) { System.out.println( java Monitor name location ); return; } name = args[0]; location = args[1]; MonitorImpl impl = new MonitorImpl(name, location); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { JFrame frame = new JFrame(name); frame.getContentPane().setLayout(new GridLayout(3, 1)); JLabel label = new JLabel( Monitor: + name + | Location: + location + | + impl.value); JSlider slider = new JSlider(); slider.setValue(0); slider.addChangeListener(e - { label.setText( Monitor: + name + | Location: + location + | + impl.value); impl.value = slider.getValue(); // Can identify anomalous or potentially dangerous readings of nitrogen oxides // and alert the Regional Centre immediately Reading reading = impl.get_reading(); if (reading != null) { int time = reading.time; if (region != null impl.value 90 minute != time) { try { region.raise_alarm(impl.get_reading()); } catch (Exception e1) { region = null; } minute = time; } } }); JTextField textField = new JTextField(20); JButton button = new JButton( Connect RegionalCentre ); button.addActionListener(e - { if (region != null) { textField.setEditable(false); button.setText( Connected ); button.setEnabled(false); return; } String id = textField.getText(); textField.setText( Connecting ); textField.setEditable(false); if (connect_region(id)) { textField.setText(id); button.setText( Connected ); button.setEnabled(false); } else { textField.setText( Connect failed. ); textField.setEditable(true); } }); label.setBorder(new EmptyBorder(16, 16, 0, 16)); slider.setBorder(new EmptyBorder(0, 8, 0, 8)); JPanel panel = new JPanel(); panel.add(textField); panel.add(button); panel.setBorder(new EmptyBorder(8, 8, 8, 8)); frame.getContentPane().add(label); frame.getContentPane().add(slider); frame.getContentPane().add(panel); frame.pack(); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); args[0] = -ORBInitialPort ; args[1] = 1050 ; ORB orb = ORB.init(args, null); Object obj = orb.resolve_initial_references( RootPOA ); POA rootpoa = POAHelper.narrow(obj); rootpoa.the_POAManager().activate(); Object ref = rootpoa.servant_to_reference(impl); Monitor monitor = MonitorHelper.narrow(ref); Object objref = orb.resolve_initial_references( NameService ); NamingContextExt ncref = NamingContextExtHelper.narrow(objref); NameComponent path[] = ncref.to_name( Monitor + name); ncref.rebind(path, monitor); System.out.println( Monitor + name + ready. ); orb.run(); } public static boolean connect_region(String id) { String[] args = { -ORBInitialPort , 1050 }; try { ORB orb = ORB.init(args, null); Object objref = orb.resolve_initial_references( NameService ); NamingContextExt ncref = NamingContextExtHelper.narrow(objref); region = (RegionalCentre) RegionalCentreHelper.narrow(ncref.resolve_str( Region + id)); return region.add_monitor(name, location); } catch (Exception e) { e.printStackTrace(); return false; } }} 5.8 AgencyServerpackage server;import EnvMon.Agency;import EnvMon.AgencyHelper;import EnvMon.EnvironmentalCentre;import EnvMon.EnvironmentalCentreHelper;import impl.AgencyImpl;import org.omg.CORBA.ORB;import org.omg.CORBA.ORBPackage.InvalidName;import org.omg.CORBA.Object;import org.omg.CosNaming.NameComponent;import org.omg.CosNaming.NamingContextExt;import org.omg.CosNaming.NamingContextExtHelper;import org.omg.CosNaming.NamingContextPackage.CannotProceed;import org.omg.CosNaming.NamingContextPackage.NotFound;import org.omg.PortableServer.POA;import org.omg.PortableServer.POAHelper;import org.omg.PortableServer.POAManagerPackage.AdapterInactive;import org.omg.PortableServer.POAPackage.ServantNotActive;import org.omg.PortableServer.POAPackage.WrongPolicy;public class AgencyServer { private static String name = null, contact = null, region = null; private static EnvironmentalCentre env = null; public static void main(String[] args) throws InvalidName, AdapterInactive, ServantNotActive, WrongPolicy, org.omg.CosNaming.NamingContextPackage.InvalidName, NotFound, CannotProceed { if (args.length 3) { System.out.println( java Agancy name contact region ); return; } name = args[0]; contact = args[1]; region = args[2]; AgencyImpl impl = new AgencyImpl(name, contact, region); String[] init = { -ORBInitialPort , 1050 }; ORB orb = ORB.init(init, null); Object obj = orb.resolve_initial_references( RootPOA ); POA rootpoa = POAHelper.narrow(obj); rootpoa.the_POAManager().activate(); Object ref = rootpoa.servant_to_reference(impl); Agency agency = AgencyHelper.narrow(ref); Object objref = orb.resolve_initial_references( NameService ); NamingContextExt ncref = NamingContextExtHelper.narrow(objref); NameComponent path[] = ncref.to_name( Agency + name); ncref.rebind(path, agency); System.out.println( Agency + name + ready. ); if (connect_env()) { System.out.println( Agency EnvironmentalCentre ok. ); } else { System.out.println( Agency EnvironmentalCentre failed. ); } orb.run(); } public static boolean connect_env() { String[] args = { -ORBInitialPort , 1050 }; try { ORB orb = ORB.init(args, null); Object objref = orb.resolve_initial_references( NameService ); NamingContextExt ncref = NamingContextExtHelper.narrow(objref); env = (EnvironmentalCentre) EnvironmentalCentreHelper.narrow(ncref.resolve_str( Env )); env.register_agency(name, contact, region); return true; } catch (Exception e) { e.printStackTrace(); return false; } }} 6. References1. https://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture2. S. Vinoski. CORBA overview: CORBA: Integrating Diverse Applications Within Distributed Heterogeneous Environments[J]. IEEE Communications Magazine, 1997, 35(2):46-55.3. Orfali R, Dan H. Client/server programming with Java and CORBA[M]// Client/server programming with Java and CORBA /. J. Wiley Sons, 1998.4. https://en.wikipedia.org/wiki/Java_(programming_language)5. https://scotch.io/bar-talk/s-o-l-i-d-the-first-five-principles-of-object-oriented-design6. Eckel B. Thinking in Java[M]. China Machine Press, 2007.7. https://docs.oracle.com/javase/7/docs/api/8. Hu J, Zhou B, Jia Y, et al. Research and Implementation of CORBA Web Services[M]// Conceptual Modeling for Advanced Application Domains. Springer Berlin Heidelberg, 2004:314-322.9. Emmerich W, Kaveh N. Component technologies: Java Beans, COM, CORBA, RMI, EJB and the CORBA Component Model[C]// European Software Engineering Conference Held Jointly with, ACM Sigsoft International Symposium on Foundations of Software Engineering. ACM, 2001:311-312.10. https://en.wikipedia.org/wiki/Swing_(Java)11. http://www.ciaranmchale.com/corba-explained-simply/benefits-of-corba.html 最先出自315代写 cs代写 作业代写 java代写 代写java服务 代写java CUBA合作:315代写
所有的编程代写范围:essayghost为美国、加拿大、英国、澳洲的留学生提供C语言代写、代写C语言、C语言代做、代做C语言、数据库代写、代写数据库、数据库代做、代做数据库、Web作业代写、代写Web作业、Web作业代做、代做Web作业、Java代写、代写Java、Java代做、代做Java、Python代写、代写Python、Python代做、代做Python、C/C++代写、代写C/C++、C/C++代做、代做C/C++、数据结构代写、代写数据结构、数据结构代做、代做数据结构等留学生编程作业代写服务。
所有的编程代写范围:essayghost为美国、加拿大、英国、澳洲的留学生提供C语言代写、代写C语言、C语言代做、代做C语言、数据库代写、代写数据库、数据库代做、代做数据库、Web作业代写、代写Web作业、Web作业代做、代做Web作业、Java代写、代写Java、Java代做、代做Java、Python代写、代写Python、Python代做、代做Python、C/C++代写、代写C/C++、C/C++代做、代做C/C++、数据结构代写、代写数据结构、数据结构代做、代做数据结构等留学生编程作业代写服务。