资源描述:
《Erlang开发电信网管项目实践》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Erlang开发电信网管项目实践Author:EryLeeDate:December2008Email:ery.lee@gmail.comAgendaAboutOpengossProjectRoadtoErlangTheArchitectureErlangHighlightsWhatWeGotWhatWeLostAboutErlangSyntaxThinkinginSoftwareAboutOpengossProjectWhat'sOpengoss?NextGenerationNetworkandBusinessManagementSyst
2、emOneuniformplatformbasedonLinux,Erlang/OTPandRORDifferentapplicationsforWIFI,EPONandEnterpisenetworksOpengossProductFamilyDMIT,Monet,Evabus,Report,RRDB,WebTopoPlatformLinux/Unix,MySQL,Oracle,LDAP,Erlang/OTP,RubyandRails…BaseN/AOpengossEnterpriseOpengossEPONOpengossWLANNMS
3、N/AN/AN/AWIMSSOSSInternetEnterpriseEPON-OSSWIFI-OSSFutureofOpengossTheNetworkManagementCloudRoadtoErlangPureJavaOriginally…FirstVersion:JavaandJEE…SecondVersion:Java,OSGi,Eclipse,Model-Driven…Javacoulddoeverything,but…Java,JSP,JSF,Struts,Webwork,Velocity,Spring,Hibernate,i
4、Batis,EJB,JDO,JMS,JNDI,JDBC,JAAS,JTA,RMI,IIOP,WebServices,SOAP,SOA,SDO...But,couldJavadoanythingbest?WeHadaBigIdeaOnce☺PlannedThirdVersion:OSGI,Component,Plugin,SOA,SDO,SCA…Butwehavenomoneyandbigteam...WearetiredofNEWconceptsandframeworks...SDO,SCA,SOA,ESB,BPML,SOBA...End
5、lessWS-*Documents…IntotheWildWewanttobefaraway...“HelloStranger”FallinlovewithREST,RailsandErlang…WhyErlang?SimplicityPerformanceConcurrencyDistributionFaultToleranceTheArchitectureArchitectureTroubleTicket3rdpartyAutomationsSNMPProbePSyslogProbePAPIPGenericPEvabusSNMPMon
6、itorMPingMonitorMTCPMonitorMOtherMonitorMWebPortal(WebTop)DMITRRDBLDAP/MITRDMSMonetUIDataBizCollectDesignLayersPresentLayer:AJAX,RailsDataCenterLayer:MySQL,Oracle,RRDB,LDAPBusinessLayer:DMIT(DistributedMIT),Evabus(EventandAlarmBus),Monet(Distributednetworkmonitor)DataCol
7、lectionLayer:Probe,Monitor,MediatorDMITLDAPandSyncreplEvabusConcurrentEventandAlarmProcessLineMonetMassivelydistributednetworkmonitoranddatacollectionErrdRRDToolErlangportErlangHighlightsMaster/SlaveandPoolDistributionandloadbalance.MasterApplicationsSlaveApplicationsSampl
8、ecode:poolhandle_cast({add,Dn,Attrs},State)->Node=pool:get_node(),rpc:call(Node,monet_age