Your SlideShare is downloading. ×
0
Java u M2M tehnologijama
Mango M2m
Ivan RagužIvan Raguž
ivan.raguz@serengeti.hr
www.serengeti.hr
Sadržaj :
• Uvod
• Mango M2M
• Mango sučelje
• Arhitektura Mango M2M sustava• Arhitektura Mango M2M sustava
Uvod
M2M koncept
- Machine to machine (M2M) odnosi se na tehnologije koje
omogućavaju uređajima komunikaciju preko protoko...
Uvod
Glavne komponente M2M koncepta
- Uređaji
- Konektori i protokoli
- Back End sustav
Uvod
Zašto se koristi M2M
Mango M2M
-Mango je softver otvorenog standarda za Machine-to-Machine
(M2T) tehnologiju (software za industrijsku kontroli...
Mango M2M
Značajke Mango M2M-a
- Brzina
- Višestruki protokoli
- Višestruke baze podataka- Višestruke baze podataka
- Meta...
Mango M2M
Značajke Mango M2M-a
- Korisničko definirani događaji
- Inport/Export
- Hvatanje događaja- Hvatanje događaja
- S...
Mango M2M
Značajke Mango M2M-a
- Dinamički dijagrami postavljenih točaka
- Liste pregleda
- Hijerarhija točaka podataka- H...
Mango M2M
Značajke Mango M2M-a
- Lista aktivnih alarma
- Vremesko definiranje događaja
- Udaljeni grafički pregledi- Udalj...
Mango sučelje
Mango sučelje
Liste pregleda podatkovnih točaka
Mango sučelje
Grafički pregled
Mango sučelje
Pregled alarmnih poruka
Mango sučelje
Izvještaji
- Definiranja podatkovne točke koju želimo pratiti preko
izvještaja
- Postavljanje vremenskog oki...
Mango sučelje
Izvještaji
Mango sučelje
Hvatanje i procesuiranje događaja
Mango sučelje
Skupovi podataka – “Data source”
- Skupovi podataka su mjesta odakle podaci stižu u aplikaciju na
obradu
- S...
Mango sučelje
Skupovi podataka – “Data source”
Mango sučelje
Skupovi podataka – “Data source”
- Modbus protokol
Mango sučelje
Skupovi podataka – “Data source”
- SNMP protokol
Mango sučelje
Podatkovne točke – “Data points”
- Skup atributa koji se povijesno može pratiti ili detektori
događaja koje ...
Mango sučelje
Podatkovne točke – “Data points”
- Hijerarhijska struktura podatkovnih točaka i pregledi
Mango sučelje
Administracija korisnika
- Dva tipa korisnika : adminnistratori i korisnici sustava
Mango sučelje
Postavke sustava
Arhitektura Mango M2M sustava
Java, web bazirana aplikacija
Otvoreni standard
Spring MVC Framework
Direct Web Remoting (DW...
Arhitektura Mango M2M sustava
- Definiranjem skupova podatka zavisno o protokolu koji nam je
potreban
- Referentni kod
- c...
Arhitektura Mango M2M sustava
DataSourceRT.java
abstract public class DataSourceRT implements
ILifecycle {
public static f...
Arhitektura Mango M2M sustava
Tipovi objekta u DataSourceVO
BACNET(10, "dsEdit.bacnetIp", true) {
@Override
public DataSou...
Arhitektura Mango M2M sustava
Tipovi objekta u DataSourceVO
SNMP(5, "dsEdit.snmp", true) {
@Override
public DataSourceVO<?...
Arhitektura Mango M2M sustava
Tipovi objekta u DataSourceVO
MODBUS_IP(3, "dsEdit.modbusIp", true) {
@Override
public DataS...
Arhitektura Mango M2M sustava
Spring MVC DispatcherServlet parmetri mapiranja
<bean id="publicUrlMappings"
class="org.spri...
Arhitektura Mango M2M sustava
dataSourceEditController
public class DataSourceEditController extends ParameterizableViewCo...
Arhitektura Mango M2M sustava
Kreiranje skupova podataka
Arhitektura Mango M2M sustava
Kreiranje skupova podataka
<td align="right" id="dataSourceTypesContent">
<select id="dataSo...
Arhitektura Mango M2M sustava
Konektori i protokoli
BACnet I/P
public class BACnetIPDataSourceRT extends
PollingDataSource...
Arhitektura Mango M2M sustava
Konektori i protokoli
BACnet I/P
import com.serotonin.bacnet4j.LocalDevice;
import com.serot...
Arhitektura Mango M2M sustava
Konektori i protokoli
ModBus IP
abstract public class ModbusDataSource extends
PollingDataSo...
Arhitektura Mango M2M sustava
Konektori i protokoli
ModBus IP
import com.serotonin.modbus4j.BatchRead;
import com.serotoni...
Arhitektura Mango M2M sustava
Konektori i protokoli
SNMP
public class SnmpDataSourceRT extends
PollingDataSource {PollingD...
Arhitektura Mango M2M sustava
Konektori i protokoli
SNMP
import org.snmp4j.PDU;
import org.snmp4j.Snmp;import org.snmp4j.S...
Arhitektura Mango M2M sustava
Definirati podatkovne točke “data point”
Referentni kod
- com.serotonin.mango.rt.dataImage.D...
Arhitektura Mango M2M sustava
DataPointRT
public class DataPointRT implements IDataPoint,
ILifecycle, TimeoutClient {
priv...
Arhitektura Mango M2M sustava
DataPointRT
Konfiguracijski podaci
private final DataPointVO vo;
private final PointLocatorR...
Arhitektura Mango M2M sustava
DataPointRT
Runtime podaci
private volatile PointValueTime pointValue;
private final PointVa...
Arhitektura Mango M2M sustava
DataPointRT
Podaci zapisa intervala
private PointValueTime intervalValue;
private long inter...
Arhitektura Mango M2M sustava
Podatkovni sloj
Arhitektura Mango M2M sustava
Podatkovni sloj
- com.serotonin.mango.db.dao
Hvala
JavaCro'14 - Java in M2M technologies – Mango M2M software – Ivan Raguž
Upcoming SlideShare
Loading in...5
×

JavaCro'14 - Java in M2M technologies – Mango M2M software – Ivan Raguž

1,459

Published on

Mango M2M is open source alternatives for Machine to Machine software that allows users to access and control electronic sensors, devices and machines over multiple protocols. The aim of the lecture is to introduce opportunities Mango M2M platform, code review and architecture, implementation protocols via a Java library.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,459
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "JavaCro'14 - Java in M2M technologies – Mango M2M software – Ivan Raguž"

  1. 1. Java u M2M tehnologijama Mango M2m Ivan RagužIvan Raguž ivan.raguz@serengeti.hr www.serengeti.hr
  2. 2. Sadržaj : • Uvod • Mango M2M • Mango sučelje • Arhitektura Mango M2M sustava• Arhitektura Mango M2M sustava
  3. 3. Uvod M2M koncept - Machine to machine (M2M) odnosi se na tehnologije koje omogućavaju uređajima komunikaciju preko protokola sa drugim uređajima iste sposobnosti. - M2M koristi mjerne uređaje za hvatanje događaja koji se odvija preko mreže i prevodi ih u smislene informacije - Podaci sa uređaja mogu se prikupljati i uređajima je moguće upravljati bez ljudskih utjecaja
  4. 4. Uvod Glavne komponente M2M koncepta - Uređaji - Konektori i protokoli - Back End sustav
  5. 5. Uvod Zašto se koristi M2M
  6. 6. Mango M2M -Mango je softver otvorenog standarda za Machine-to-Machine (M2T) tehnologiju (software za industrijsku kontroli, SCADA, HMI ili domotics software) - Omogućava korisniku istovremeni pristup i kontrolu elektroničkim senzorima, uređajima i strojevima preko raznih protokola.senzorima, uređajima i strojevima preko raznih protokola. - Osigurava korisnička sučelja za konfiguriranje različitih "data sources" koji omogućavaju upravljanje "downstream" procesima, korisničkim pristupom, porukama upozorenja, zapisivanjem podataka i automatizaciju.
  7. 7. Mango M2M Značajke Mango M2M-a - Brzina - Višestruki protokoli - Višestruke baze podataka- Višestruke baze podataka - Meta point
  8. 8. Mango M2M Značajke Mango M2M-a - Korisničko definirani događaji - Inport/Export - Hvatanje događaja- Hvatanje događaja - Sigurnost - Izvještaji
  9. 9. Mango M2M Značajke Mango M2M-a - Dinamički dijagrami postavljenih točaka - Liste pregleda - Hijerarhija točaka podataka- Hijerarhija točaka podataka - Grafički prikazi - Detalji podatkovnih točaka
  10. 10. Mango M2M Značajke Mango M2M-a - Lista aktivnih alarma - Vremesko definiranje događaja - Udaljeni grafički pregledi- Udaljeni grafički pregledi - Zvuk alarmnih događaja
  11. 11. Mango sučelje
  12. 12. Mango sučelje Liste pregleda podatkovnih točaka
  13. 13. Mango sučelje Grafički pregled
  14. 14. Mango sučelje Pregled alarmnih poruka
  15. 15. Mango sučelje Izvještaji - Definiranja podatkovne točke koju želimo pratiti preko izvještaja - Postavljanje vremenskog okidača - Postavljanje mail notifikacije (adrese primatelja ili grupe primatelja)
  16. 16. Mango sučelje Izvještaji
  17. 17. Mango sučelje Hvatanje i procesuiranje događaja
  18. 18. Mango sučelje Skupovi podataka – “Data source” - Skupovi podataka su mjesta odakle podaci stižu u aplikaciju na obradu - Skupovi podataka mogu biti svi skupovi koji su podržani protokolima unutar mango m2m aplikacije - Skupovi podataka mogu se dodavati prilagodbom koda aplikacije i umetanjem protokola
  19. 19. Mango sučelje Skupovi podataka – “Data source”
  20. 20. Mango sučelje Skupovi podataka – “Data source” - Modbus protokol
  21. 21. Mango sučelje Skupovi podataka – “Data source” - SNMP protokol
  22. 22. Mango sučelje Podatkovne točke – “Data points” - Skup atributa koji se povijesno može pratiti ili detektori događaja koje mjere stanja interesa pojedinih vrijednosti točaka.
  23. 23. Mango sučelje Podatkovne točke – “Data points” - Hijerarhijska struktura podatkovnih točaka i pregledi
  24. 24. Mango sučelje Administracija korisnika - Dva tipa korisnika : adminnistratori i korisnici sustava
  25. 25. Mango sučelje Postavke sustava
  26. 26. Arhitektura Mango M2M sustava Java, web bazirana aplikacija Otvoreni standard Spring MVC Framework Direct Web Remoting (DWR) Dojo Framework Apache Tomcat Apache Ant
  27. 27. Arhitektura Mango M2M sustava - Definiranjem skupova podatka zavisno o protokolu koji nam je potreban - Referentni kod - com.serotonin.mango.rt.dataSource.DataSourceRT - com.serotonin.mango.vo.dataSource.DataSourceVO- com.serotonin.mango.vo.dataSource.DataSourceVO - Izvršavaju zadatke prikupljanja i slanje informacija iz vanjskih sustava u sistem i obrnuto
  28. 28. Arhitektura Mango M2M sustava DataSourceRT.java abstract public class DataSourceRT implements ILifecycle { public static final String ATTR_UNRELIABLE_KEY = "UNRELIABLE";"UNRELIABLE"; private final DataSourceVO<?> vo;
  29. 29. Arhitektura Mango M2M sustava Tipovi objekta u DataSourceVO BACNET(10, "dsEdit.bacnetIp", true) { @Override public DataSourceVO<?> createDataSourceVO() { return new BACnetIPDataSourceVO(); }} }, HTTP_RECEIVER(7, "dsEdit.httpReceiver", true) { @Override public DataSourceVO<?> createDataSourceVO() { return new HttpReceiverDataSourceVO(); } },
  30. 30. Arhitektura Mango M2M sustava Tipovi objekta u DataSourceVO SNMP(5, "dsEdit.snmp", true) { @Override public DataSourceVO<?> createDataSourceVO() { return new SnmpDataSourceVO(); }} }, EBI25(16, "dsEdit.ebi25", false) { @Override public DataSourceVO<?> createDataSourceVO() { return new EBI25DataSourceVO(); } },
  31. 31. Arhitektura Mango M2M sustava Tipovi objekta u DataSourceVO MODBUS_IP(3, "dsEdit.modbusIp", true) { @Override public DataSourceVO<?> createDataSourceVO() { return new ModbusIpDataSourceVO(); }} }, POP3(12, "dsEdit.pop3", true) { @Override public DataSourceVO<?> createDataSourceVO() { return new Pop3DataSourceVO(); } },
  32. 32. Arhitektura Mango M2M sustava Spring MVC DispatcherServlet parmetri mapiranja <bean id="publicUrlMappings" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <!-- All user URLs --> <prop key="/compound_events.shtm">compoundEventsController</prop><prop key="/compound_events.shtm">compoundEventsController</prop> <prop key="/data_point_details.shtm">dataPointDetailsController</prop> <prop key="/data_point_edit.shtm">dataPointEditController</prop> <prop key="/data_source_edit.shtm">dataSourceEditController</prop> <prop key="/data_sources.shtm">dataSourceListController</prop>
  33. 33. Arhitektura Mango M2M sustava dataSourceEditController public class DataSourceEditController extends ParameterizableViewController { @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { DataSourceVO<?> dataSourceVO = null; User user = Common.getUser(request); // Get the id. int id = Common.NEW_ID;int id = Common.NEW_ID; String idStr = request.getParameter("dsid"); if (idStr == null) { // Check for a data point id String pidStr = request.getParameter("pid"); if (pidStr == null) { // Adding a new data source? Get the type id. int typeId = Integer.parseInt(request.getParameter("typeId")); Permissions.ensureAdmin(user); // A new data source dataSourceVO = DataSourceVO.createDataSourceVO(typeId); dataSourceVO.setId(Common.NEW_ID); dataSourceVO.setXid(new DataSourceDao().generateUniqueXid());
  34. 34. Arhitektura Mango M2M sustava Kreiranje skupova podataka
  35. 35. Arhitektura Mango M2M sustava Kreiranje skupova podataka <td align="right" id="dataSourceTypesContent"> <select id="dataSourceTypes"> <option value="10">BACnet I/P</option> <option value="21">DNP3 IP</option> <option value="14">Galil DMC-21x2</option> <option value="7">HTTP Receiver</option> <option value="11">HTTP Retriever</option> <option value="15">HTTP Image</option> <option value="27">Internal Data Source</option> <option value="26">JMX</option><option value="26">JMX</option> <option value="9">Meta Data Source</option> <option value="3">Modbus IP</option> <option value="2">Modbus Serial</option> <option value="13">NMEA listener</option> <option value="8">1-wire</option> <option value="23">Pachube</option> <option value="24">Serotonin Persistent TCP</option> <option value="12">POP3 Email</option> <option value="5">SNMP</option> <option value="4">Spinwave Receiver</option> <option value="6">SQL</option> <option value="1">Virtual Data Source</option> <option value="17">VMStat Data Source</option> </select> <img title="Add" class="ptr" onclick="addDataSource()" alt="Add" src="images/icon_ds_add.png" border="0"> </td>
  36. 36. Arhitektura Mango M2M sustava Konektori i protokoli BACnet I/P public class BACnetIPDataSourceRT extends PollingDataSource implements DeviceEventListener, ExceptionListener {ExceptionListener { public class BACnetIPDataSourceVO extends DataSourceVO<BACnetIPDataSourceVO> { public static final Type TYPE = Type.BACNET;
  37. 37. Arhitektura Mango M2M sustava Konektori i protokoli BACnet I/P import com.serotonin.bacnet4j.LocalDevice; import com.serotonin.bacnet4j.Network;import com.serotonin.bacnet4j.Network; import com.serotonin.bacnet4j.RemoteDevice; import com.serotonin.bacnet4j.RemoteObject; import com.serotonin.bacnet4j.event.DeviceEventListener; import com.serotonin.bacnet4j.event.ExceptionListener;
  38. 38. Arhitektura Mango M2M sustava Konektori i protokoli ModBus IP abstract public class ModbusDataSource extends PollingDataSource implementsPollingDataSource implements MessagingExceptionHandler { abstract public class ModbusDataSourceVO<T extends ModbusDataSourceVO<?>> extends DataSourceVO<T> {
  39. 39. Arhitektura Mango M2M sustava Konektori i protokoli ModBus IP import com.serotonin.modbus4j.BatchRead; import com.serotonin.modbus4j.BatchResults;import com.serotonin.modbus4j.BatchResults; import com.serotonin.modbus4j.ExceptionResult; import com.serotonin.modbus4j.ModbusMaster;
  40. 40. Arhitektura Mango M2M sustava Konektori i protokoli SNMP public class SnmpDataSourceRT extends PollingDataSource {PollingDataSource { public class SnmpDataSourceVO extends DataSourceVO<SnmpDataSourceVO> {
  41. 41. Arhitektura Mango M2M sustava Konektori i protokoli SNMP import org.snmp4j.PDU; import org.snmp4j.Snmp;import org.snmp4j.Snmp; import org.snmp4j.Target; import org.snmp4j.smi.OID; import org.snmp4j.smi.Variable; import org.snmp4j.smi.VariableBinding;
  42. 42. Arhitektura Mango M2M sustava Definirati podatkovne točke “data point” Referentni kod - com.serotonin.mango.rt.dataImage.DataPointRT - com.serotonin.mango.vo.DataPointVO,- com.serotonin.mango.vo.DataPointVO,
  43. 43. Arhitektura Mango M2M sustava DataPointRT public class DataPointRT implements IDataPoint, ILifecycle, TimeoutClient { private static final Log LOG = LogFactory.getLog(DataPointRT.class);LogFactory.getLog(DataPointRT.class); private static final PvtTimeComparator pvtTimeComparator = new PvtTimeComparator();
  44. 44. Arhitektura Mango M2M sustava DataPointRT Konfiguracijski podaci private final DataPointVO vo; private final PointLocatorRT pointLocatorprivate final PointLocatorRT pointLocator
  45. 45. Arhitektura Mango M2M sustava DataPointRT Runtime podaci private volatile PointValueTime pointValue; private final PointValueCache valueCache;private final PointValueCache valueCache; private RuntimeManager rm; private List<PointEventDetectorRT> detectors; private final Map<String, Object> attributes = new HashMap<String, Object>();
  46. 46. Arhitektura Mango M2M sustava DataPointRT Podaci zapisa intervala private PointValueTime intervalValue; private long intervalStartTime = -1;private long intervalStartTime = -1; private List<IValueTime> averagingValues; private final Object intervalLoggingLock = new Object(); private TimerTask intervalLoggingTask;
  47. 47. Arhitektura Mango M2M sustava Podatkovni sloj
  48. 48. Arhitektura Mango M2M sustava Podatkovni sloj - com.serotonin.mango.db.dao
  49. 49. Hvala
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×