Servicio de gestión de tiempos para sistemas distribuidos sobre el middleware ICE

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Servicio de gestión de tiempos para sistemas distribuidos sobre el middleware ICE"

Transcripción

1 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE ProgramaOficialdePostgradoenCiencias,TecnologíayComputación MásterenComputación FacultaddeCiencias UniversidaddeCantabria Serviciodegestióndetiemposparasistemas distribuidossobreelmiddlewareice ÁngeladelBarrioFernández Director: JoséMaríaDrakeMoyano. GrupodeComputadoresyTiempoReal DepartamentodeElectrónicayComputadores. Santander,octubrede2008 Curso2007/2008 ÁngeladelBarrioFernández 1

2 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Agradecimientos Enprimerlugarquieroexpresarmimássinceroagradecimientoamidirector deproyectoeldr.josémaríadrakemoyano,catedráticodeldepartamento de Electrónica y Computadores de la Universidad de Cantabria, por su confianza, amabilidad, dedicación, minuciosidad y su disposición en todo momento para resolver cualquier duda surgida durante el desarrollo del proyecto. GraciasamiscompañerosdelGrupodeComputadoresyTiempoReal,por elbuenambientedetrabajoysentimientodegrupodelquedisfrutocadadia yconquienescasiadiarioaprendocosasnuevas. Porúltimodesearíaexpresarmimásprofundoagradecimientoamifamilia porsuapoyoydedicación. ÁngeladelBarrioFernández 2

3 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Índicedecontenido 1.Ámbitoyobjetivosdeltrabajo Aleatoriedaddeltiempoenlossistemasdistribuidos Formatosygestióndeltiempoenlossistemasinformáticos Plataformadistribuidadereferencia ElmiddlewareICE Objetivosyorganizacióndeltrabajo EstándarOMGEnhancementViewofTimeSpecification EstándaresOMGdegestióndetiemposensistemasdistribuidos Representacióndeltiempoycaracterizacióndelosrelojes Relojesdereferenciaysincronizaciónderelojes Arquitecturadelservicio RelojesUTCytiposdedatosparalarepresentacióndeltiempo Relojescontroladosodemisión Ejecucionesperiódicasyaplazadas SincronizaciónderelojesyprotocoloNTP ProtocoloNTP:TheNetworkTimeProtocol Redesyniveles Tiposdeclientesyservidores PrecisiónyResolución Algoritmosdesincronizacióndereloj Estimacióndeloffsetydelerror Algoritmosdefiltradoeintersección Algoritmodeclustering Algoritmodecombinaciónderelojes ServiciosNTPenLINUX ImplementacióndelrelojUtcTimeServicesobreICE Estrategiadeimplementacióndelserviciodetiempo hTimeService:Gestiónyconfiguracióndelasincronizacióndelrelojlocal hClockCatalog:Gestiónyaccesoalosrelojes hUtcTimeService:Medidaycualificacióndeltiempo hUTCyhTimeSpan:Gestióndeinstantesdetiempoeintervalostemporales EjemplodeaccesolocalyremotoalUtcTimeService ImplementacióndehControlledClocksobreICE Estrategiadeimplementacióndelosrelojesdemisión Estructuradedatosdeunrelojdemisión Ejemplodeuso,accesolocalyremotoalosrelojesdemisión ImplementacióndehExecutorsobreICE Estrategiadeimplementacióndelaejecuciónperiódicayaplazada TemporizadoresenLinux hController:Controladorlocaldelaejecución hExecutor:Planificadordeejecucionesperiódicasyaplazadas Ejemplodeusolocalyremotodeejecuciónperiódicayaplazadadetareas Conclusionesylíneasfuturas Referencias ApéndiceA: DeclaraciónSlicedelasInterfacesdelserviciodetiempo A.1EspecificacióndelmóduloTimeBase A.2EspecificacióndelmóduloCosClockService A.3EspecificacióndelmóduloTimeService ÁngeladelBarrioFernández 3

4 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Índicedetablas Tabla1.1:PlataformassoportadasporIce Tabla2.1:Representacióndeltiempoendiferentessistemas...12 Tabla3.1:Ejemplodelficheropeerstatsgeneradoporntpdparaunaconfiguraciónconcreta...27 ÁngeladelBarrioFernández 4

5 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE 1.Ámbitoyobjetivosdeltrabajo 1.1 Aleatoriedaddeltiempoenlossistemasdistribuidos En los sistemas de tiempo real se necesita disponer de un reloj global con el que caracterizar temporalmente los eventos que sereciben del entorno y las acciones que se realizan sobre él [1]. Así mismo,enlossistemasconcurrentes,enlosquelasaccionesqueseejecutanenellasnotienendefinidoun ordenestrictodeejecución,sepuedenecesitarunrelojglobalsisenecesitacompararsusaccionesporsu precedencia temporal. Así, por ejemplo, en una red eléctrica que esta siendo monitorizada, cuando se produceunfalloenunodesusnodos,sueleprovocarfallosencadenaenotrosmuchosotrosnodos.siel sistemadebeidentificarelorigendelosfallos,debesercapazdeordenarloseventosconresoluciónde milisegundosparaidentificarcualdeellosfueelprimeroqueseprodujo. Enunsistemamonoprocesador essencilloimplementar un relojglobal y monótono, yaquecuandoun procesoquiereobtenereltiempoactual,realizaunallamadaalnúcleodelsistema,queledevuelveeldato leyendoelúnicorelojexistenteenél.siunprocesoapreguntaeltiempoyunmomentodespuésunproceso Btambiénlohace,elvalorobtenidoporBserámayoroigualalobtenidoporA,peroenningúncaso,en condiciones normales de funcionamiento será menor. En un sistema distribuido constituido por varios procesadores,esmuchomásdifícildisponerderelojesqueproporcionenuntiempoglobalynoambiguo. Losrelojesdeloscomputadoressebasanendispositivoshardwaredetipotemporizador(timers).Untimer deunordenadorhabitualmenteconsisteenuncristaldecuarzoqueosciladeformaprecisa.asociadoal mismoexistendoselementos:uncontador(counter) yunregistro(holding).cadaunadelasoscilaciones del cristal decrementa el contador en una unidad. Cuando la cuenta se hace cero, se genera una interrupción y el contador se vuelve a cargar a partir del registro holding. De esta forma es posible programaruntemporizadorquegenereinterrupcionesaunafrecuenciadeterminada.cadaunadeestas interrupcionessellama(tick)delreloj. Cuandosearrancaporprimeravezelsistema,generalmentesepreguntaalusuariolahoraylafecha.Este datoseconvierteenunnúmerodeticksreferenciadosaunafechainicial(epoch)ysealmacenaenla memoria. Sihayunsoloordenadorqueutilizaunúnicoreloj,notienemuchaimportancialaexactituddelmismo,ya quetodosloseventossevanaregirporelmismorelojeinternamenteelsistemaseráconsistente,figura1.1. Figura1.1:Sistemamonoprocesador Cuandoelsistemaesdistribuidoyestácompuestoporvarioscomputadores,cadaunoconsupropioreloj, la situación cambia. A pesar de que la frecuencia a la que oscila el cristal de cuarzo sea estable, es imposiblegarantizarqueloscristalesdediferentesordenadorescorranexactamentealamismafrecuencia. En la practica, cuando un sistema está formado por n ordenadores, los n cristales correrán con tasas ÁngeladelBarrioFernández 5

6 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE ligeramentediferentescausandoquelosrelojessoftwaresedesincronicengradualmente,figura1.2.esta diferenciasedenominasesgodelreloj(clockskew).comoconsecuenciadelsesgo,eventoscaracterizados temporalmentepordiferentesrelojes,nopuedensercomparadosentresí.enestoscasosesnecesarioque losrelojesseencuentrensincronizadosentresi,estoes,queexistaunprocesocontinuadodecomparación yajustequegaranticequelafrecuenciamediadetodoslosrelojesseaexactamentelamisma[2]. Figura1.2:Plataformadistribuida 1.2 Formatosygestióndeltiempoenlossistemasinformáticos Paraproporcionareltiempodeformaprecisa,elNationalInstituteofStandardsandTechnology(NIST)rige unaestaciónderadiodeondacortallamadawwv.ladifusiónbroadcastdewwvemiteunpulsocortoal inicio de cada segundo UTC1, La precisión de WWV es aproximadamente de ± 1 msg, pero debido a fluctuacionesatmosféricasaleatoriasenlapráctica,laprecisiónnoesmayorde±10msg.existenvarios satélitesquetambiénofrecenelservicioutcconaltasprecisiones.lautilizacióndecualquieradeestos sistemas,yasearadioosatéliterequiereunconocimientoprecisodelaposiciónrelativadeltransmisorydel receptorparacompensarelretrasodepropagacióndelaseñal. Siuna máquina tiene unreceptorwwv,elobjetivoconsiste enconseguirque las demásmáquinasse sincronicenconesta.siningunamáquinatieneunreceptorwwv,cadamáquinacomputasupropiotiempo, yelobjetivoesmantenertodaslasmáquinasconuntiempolomáspróximoposiblelasunasdelasotras. Existen múltiples algoritmos para conseguir este propósito (Cristian, Drummond y Babaoglu, Kopetz y Oschsenreiter)[3].Todosestosalgoritmossebasanenelmismomodelodesistemasubyacente,dondese asume que un timer provoca una interrupción H veces por segundo. Cuando el tiempo se acaba, el manejador de la interrupción añade 1 al reloj software que lleva la cuenta del número de ticks o interrupciones desde un momento determinado del pasado, C. De manera más específica, cuando un tiempoutces t,elvalordelrelojdelamáquinalocal p,es Cp(t), figura 1.3.Enunsistemacuyoreloj funcionasedemaneraperfectacp(t)=tparatodopyt.enotraspalabras,dc/dt=1. 1 UniversalCoordinatedTime.EscaladetiempoatómicaderivadadeInternationalAtomicTime(TAI) ÁngeladelBarrioFernández 6

7 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Figura1.3:Driftderelojes LostimersrealesnointerrumpenexactamenteHvecesporsegundoalsistema.Deformateórica,untimer conh=60deberíagenerar interrupcionescadahora.enlapráctica,elerrorrelativoqueseobtiene conchipsdetiempomodernosesdelordende10e 5,loquesignificaqueunamáquinaenconcretopodría oscilarenelrangode a ticksporhora.deformamásprecisa,existeunaconstanteρ de formaque 1 ρ dc 1+ρ dt Fórmula1.1 se puede asegurar que el timer está funcionando dentro de su especificación. La constante ρ viene especificada por el fabricante y se conoce con el nombre de maximum drift rate (tasa máxima de dispersión). SidosrelojesderivandelahoraUTCensentidosopuestos,enunmomento tdespuésdequehayansido sincronizados,comomuchopodrándistar2ρ t. 1.3 Plataformadistribuidadereferencia Laplataformaenquesedespliegayejecutalaaplicaciónesdistribuidaytieneprocesadoresdistribuidospor todaeláreadetrabajodelsistema. ElmiddlewareutilizadohasidoICE2 sobrelaplataformalinuxubuntu6.06,perofuncionaenentornos heterogéneosy conaplicacionesdesarrolladasendiferentes lenguajesdeprogramación. Elservidor de tiempossehadesarrolladoutilizandoellenguajedeprogramaciónc/c++. Enelsistemaoperativosehaaplicadounparchedealtaresolucióndereloj[4] [5].Enlafigura 1.4 se muestralaplataformadistribuidadereferenciaquesehautilizadoparaimplementarelserviciodetiempos [6]. Los ordenadores unidos mediante una línea discontinua representan sistemas susceptibles de incorporarseadichoservicio. 2 InternetCommunicationsEngine ÁngeladelBarrioFernández 7

8 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Figura1.4:Plataformadistribuidadereferencia 1.4 ElmiddlewareICE ICE (Internet Communication Engine) es un middleware orientado a objetos [7]. ICE proporciona herramientas, APIs, y soporte de bibliotecas para construir aplicaciones cliente servidor orientadas a objetos.unaaplicaciónicesepuedeusarenentornosheterogéneos:losclientesylosservidorespueden escribirseendiferenteslenguajesdeprogramación,puedenejecutarseendistintossistemasoperativosyen distintasarquitecturasypuedencomunicarseempleandodiferentestecnologíasdered.además,elcódigo fuente de estas aplicaciones puede portarse de manera independiente al entorno de desarrollo. Las principalescaracterísticasdeicesonlassiguientes: Proporcionaunmiddlewareaptoparaadaptarseasistemasheterogéneos Proveeunconjuntodecaracterísticasquesoportaneldesarrollodeaplicacionesdistribuidasreales enunampliorangodedominios. TienelicenciaGPL ExisteunaversiónparasistemasembebidosIce e LaorganizaciónZeroCgarantizaelfuncionamientodeIceenlassiguientesplataformas[8]: ÁngeladelBarrioFernández 8

9 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE IceparaC++ Plataformas Compiladores VisualStudio2005SP1 VisualC++2005ExpressEdition WindowsXPSP2(x86) VisualStudio2008 VisualC++2008ExpressEdition VisualC++6.0SP5andSTLport4.6.2osuperior CodeGearC++Builder2007 VisualStudio2005SP1 VisualC++2005ExpressEdition(x86solamente) WindowsVista(x86yx64) VisualStudio2008 VisualC++2008ExpressEdition(x86solamente) CodeGearC++Builder2007(x86solamente) VisualStudio2005SP1 WindowsServer2003Standard(x86yx64) VisualC++2005ExpressEdition(x86solamente) VisualStudio2008 VisualC++2008ExpressEdition(x86solamente) VisualStudio2005SP1 WindowsServer2008Standard(x86yx64) VisualC++2005ExpressEdition(x86solamente) VisualStudio2008 VisualC++2008ExpressEdition(x86solamente) RedHatEnterpriseLinux4.6(i386andx86_64) GCC3.4.6 RedHatEnterpriseLinux5.1(i386andx86_64) GCC4.1.2 SuSELinuxEnterpriseServer10SP1(i586y x86_64) GCC4.1.2 MacOSXLeopard(Intelx86) GCC4.0.1 Solaris10(SPARCyx86/x64) SunStudio12(CC5.9),32/64bit HP UX11.11(PA RISC) HPaCC3.56,32/64bit IceparaJava Plataformas TodaslasplataformassoportadasexceptoHP UX Compiladores JDK1.5.0or1.6.0 Icepara.NET Plataformas WindowsXPSP2(x86) WindowsVista(x86andx64) WindowsServer2003Standard(x86yx64) WindowsServer2008Standard(x86yx64) SuSELinuxEnterpriseServer10SP1(i586y x86_64) ÁngeladelBarrioFernández Compiladores VisualStudio2005(.NET2.0) VisualStudio2008(.NET3.5) VisualStudio2005(.NET2.0) VisualStudio2008(.NET3.5) VisualStudio2005(.NET2.0) VisualStudio2008(.NET3.5) VisualStudio2005(.NET2.0) VisualStudio2008(.NET3.5) Mono

10 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE IceparaPHP Plataformas Compiladores WindowsXPSP2(x86) PHP5.2.6 RedHatEnterpriseLinux4.6(i386andx86_64) PHP5.1.6 RedHatEnterpriseLinux5.1(i386andx86_64) PHP5.1.6 SuSELinuxEnterpriseServer10SP1(i586y x86_64) PHP5.1.2 IceparaPython Plataformas Compiladores TodaslasplataformasIceparaC++exceptoHP UX Python2.3,2.4or2.5 IceparaRuby Plataformas Compiladores WindowsXPSP2(x86) Ruby1.8.6 RedHatEnterpriseLinux4.6(i386andx86_64) Ruby1.8.1 RedHatEnterpriseLinux5.1(i386andx86_64) Ruby1.8.5 Tabla1.1:PlataformassoportadasporIce Objetivosyorganizacióndeltrabajo El presente trabajo ha sido el diseño e implementación de un servicio de tiempos (Time Service) que implementefielmentelaespecificaciónenhancedtimeserviceestablecidaporomg[9][10],adaptadapara plataformasdistribuidasyheterogéneasqueoperensobreelmiddlewareice. Losaspectosqueresuelveesteservicioson: Gestionalasincronizacióndetodoslosrelojesdelaplataformadeacuerdoconunaestructuradedos niveles:unnudodelaplataformaactúacomoservidordetiempodetodoslodemásnudos,yélse sincronizaconunaservidorexternodebajostratum. Encasodefallodelservidordetiemporaíz,losustituyeporotrodeacuerdoconlainformaciónde configuracióndisponibleenlaplataforma. PermiteobtenereltiempoUTCactual,convenientementecualificadoparaquepuedasercomparado conotrosinstantesdetiemposobtenidostambiéndelservicio. Permitecomparardeformaseguradiferentesinstantesdetiemposobtenidosenlosdiferentesnudos delaplataforma. Permite generar relojes de misión, en los que se fija el instante de tiempo que constituye su referencia,sepuedecontrolarsutasadecuentadetiempo,asícomocontrolarsumarcha. Proporciona un servicio de ejecución de tareas periódicas y retrasadas, al que un cliente de la plataformapuedeencargarqueejecuterepetidamenteunafuncióndecallbackcadaciertotiempo,o porunasolavezenuninstanteabsolutoorelativoalainvocación. Paraobtenerestafuncionalidad,sehadesarrolladounserviciodistribuidoconservicioslocalesenmuchos nudosdelaplataformaparaminimizarlaslatencias,yqueoperadeacuerdoalossiguientescriterios: Elrelojconelquesemideeltiempoeselrelojdelprocesadorenelqueseejecutaelservicode tiemposlocalqueseinvoca. Todos los relojes de los diferentes nudos de la plataforma distribuida son sincronizados por el TimeServiceutilizandoNTP.CadaServiciodetiempolocalsupervisaelestadodesincronizacióndel procesadorlocalymantienelainformaciónestadísticanecesariaparacualificarlostiemposquese obtienendeél. Lostiemposylosintervalosqueseobtienendelserviciosonestructurasdedatoscondefinición binariabiendefinidayacordeconelestándardeomg.lainterpretacióndeestasestructurasse ÁngeladelBarrioFernández 10

11 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE realizanatravésdeclasesenvolventes(wrapper)quesoncreadaslocalmenteporcadacliente. TodoslosaccesosalosserviciosdeTimeService(lagestióndelservicio,elaccesoalosrelojes,yla invocacionesdelasoperacionesperiódicasyretrasadasserealizanutilizandoelmiddlewareice. ÁngeladelBarrioFernández 11

12 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE 2.EstándarOMGEnhancementViewofTimeSpecification 2.1EstándaresOMGdegestióndetiemposensistemasdistribuidos. El servicio TimeService que se especifica en este documento ofrece la funcionalidad definida por la organización OMG [11] en su documento Time Service Specification [9] OMG formal/ , y la funcionalidad más avanzada de Clock Service definida en el documento Enhacement View of Time Specification [10]OMGformal/ La organización OMG, propone en estos documentos, un servicio, denominado TimeService [10] que permitaalusuarioobtenereltiempoactual,juntoconlaestimacióndelerrorasociadoaél. Ademásdel tiempoactual,elserviciotambiénproporcionamediospara: Establecerdeformafiableelordenenelqueloseventossehangenerado. Calcularycompararintervalosdetiempodefinidospordoseventosquelodelimitan. Generar relojes especiales de forma que el cliente que los utiliza pueda definir el instante de referenciaconrespectoalquemideneltiempo,laescaladetiemposconlaquemidenyelcontrolde sumarcha. Lageneracióndeeventostemporizadosbasadosenelreloj. 2.2Representacióndeltiempoycaracterizacióndelosrelojes Representacióndeltiempo Enlossistemasinformáticosexistenmuchosformatosdiferentespararepresentareltiempo[10]tabla2.1. Porejemplo,enX/OpenDCETimeServicesedefinentresrepresentacionesbinariasdeltiempoabsoluto, mientrasqueenelunixsvidsedefineotrarepresentacióndeltiempodiferente. LinuxTime [12] JavaTime [13] UTCTime [14] epoch resolution 10msg 1ms tamañode palabra 64bits 64bits WindowsTime[15] 32bits DOS Gregorian Time nsg 64bits 64bits Tabla2.1:Representacióndeltiempoendiferentessistemas Afindegarantizarlacoherenciaycompatibilidaddelosdiferentesserviciosdetiempoqueseofrecen,tanto enelmódulotimeservicecomoenelclockserviceseutilizaunúnicoformatoderepresentacióndeltiempo quesedenominatimetyenlaqueseformulanlaslecturasdecualquierrelojdefinidoenlaespecificación. Lascaracterísticasdeestarepresentaciónson: Unidad de tiempo: 100 nanosegundos (10-7 segundos) Tiempo base: 15 October :00:00. Rango aproximado: AD3 30,000 Lacorrespondienterepresentaciónbinariaparalostiemposrelativostienecaracterísticassimilaresalasde laabsoluta: Unidad de tiempo: 100 nanosegundos (10-7 segundos) Rango aproximado: +/- 30,000 años 3 AnnoDomini:EsunadesignaciónparanumerarlosañosencalendariosJulianosyGregorianos ÁngeladelBarrioFernández 12

13 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Característicasdelosrelojes Losrelojestienenunconjuntodecaracterísticasconlasquesepuedendecidirsisonútilesonoparauna aplicaciónparticular.lascaracterísticasquesedefinenparalosrelojesenestaespecificaciónson: Resolución(resolution):Representalagranularidaddelasmedidasdelreloj.Tambiénrepresentael intervalodetiempoduranteelcuallalecturadelrelojnocambia.laresolucióneshabitualmentela inversadelafrecuenciadelosciladorquegobiernaalreloj. Precisión (precision): Representa el número de bits proporcionados por la lectura del reloj y su escala. Tanto la precisión como la resolución son muy importantes para asegurar la unicidad del tiempoasícomoparapoderestablecerunacomparaciónentredostiempos. Estabilidad(stability):Representalacapacidaddeunrelojparagarantizarmedidasdeintervalosde tiempoqueseanconsistentesconeltiempofísicoquehatranscurrido,oloqueeslomismo,para marcarelpasodeltiempoconunafrecuenciaconstante.laestabilidadsemidemedianteunconjunto dederivadasdelafrecuenciadelreloj,quedescribensuvariaciónfrentealenvejecimientodelsistema físico,ofrentealcambiodefactoresambientales(porejemplotemperatura). Estascaracterísticassoninherentesacualquierrelojysumedidadeberealizarseconreferenciaauna fuentedetiempoaceptadacomoestándar.paraciertossistemas,lacaracterizacióndelrelojseobtienea través de medidas estáticas previas, o de la especificación del fabricante. Los relojes que son caracterizadosdeestaformasedenominanrelojesnocoordinados(uncoordinated). Cuandoenelsistemaestápresentemásdeunreloj,sedefineunconjuntodecaracterísticasqueson relevantesparaestablecerlacomparacióndelostiemposquemidenlosdiferentesrelojes: Offset:Representaladiferenciaentrelaslecturasdedosrelojesdiferentesdeunmismoinstantede tiempo.paragestionarrelojesquesoportentiempolocalytiempodesesión,eloffsetessubdividido en dos componentes: el offset deliberado (deliberate offset) y el offset aleatorio (unsynchronized offset). Sesgo(skew):Representalavelocidaddecambio(primeraderivada)deloffsetentredosrelojes(en undeterminadoinstantedetiempo).tambiénequivalealadiferenciaentrelasfrecuenciasdelosdos relojes.parapodercaracterizarlosrelojesafindeajustarsufrecuenciasysincronizarloserrores, este parámetro se descompone en las componentes: sesgo deliberado (deliberate skew) ysesgo accidental(accidentalskew).cuandoseutilizanrelojesqueadmitencontrol(parar,continuar,etc.)es muyimportanteintroducirunamarcaqueindiquesielrelojhasidoparadooinicializadodentrodel intervalodemedida. Deriva(drift):Representalatasadecambiodelsesgo(segundaderivadadeloffset)entredosrelojes. Se debe definir una indicación o marca especial, en el caso de que el sesgo deliberado cambie duranteunintervalodemedida. Sepuedecaracterizarlaexactitud(accuracy)deunrelojsisusmedidassepuedencompararconotroreloj aceptadocomoestándar,osincronizadoconél. Existeunconjuntodeprotocolosdestinadosaajustarlosrelojesfísicos,deformaqueconstituyanrelojes lógicosqueesténsincronizadosconotrosrelojesqueseconsideranmaestros.enparticular,elprotocolo NTPpermitesincronizarlosrelojesconservidoresdetiempoprimariosexternosorganizadosenniveles (stratum). Se definen características adicionales para los relojes coordinados. Estas características suelen ser específicasdelprotocolodesincronización.enestaespecificación,sedefinenlassiguientescaracterísticas paralosrelojescoordinados: Escaladetiempodecoordinación (coordinationtimescale):laescaladetiempoconlaquese coordinayaseadirectamenteoindirectamente.habitualmenteesutc,perotambiénseutilizanotros elementosdetiempouniversalytiempolocal(comoporejemplo,offsetporzonadetiempoyhora deldía). ÁngeladelBarrioFernández 13

14 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Niveldestratumdecoordinación(coordinationstrata):Indicaelniveldecoordinaciónconlafuente detiempodereferenciaúltima(habitualmenteunafuentedetiempoexterna). Fuentedecoordinación(coordinationsource):Eslafuenteconlaquesecoordinaelreloj. LaEspecificaciónTemporaldeOMG,incluyeunconjuntodeestructurasdedatosparacodificartodasestas característicasdeunreloj,lascualessepuedenobtenerdelcatalogoderelojesatravésdelainterfaz ClockCatalog. 2.3Relojesdereferenciaysincronizaciónderelojes LaespecificacióndeOMGincluyeinterfacesparasincronizarunrelojaunrelojmaster[10].Unrelojmaster esaquelqueproporcionavaloresdetiempogarantizadosenexactitudalosrequerimientosqueestablecela aplicación,bienporquelanaturalezadelafuentedetiempohardwarequelesirvedebaselocumple,obien porqueestásincronizadaconotrorelojmaster(externalclocksynchronization)quetienelascaracterísticas requeridas. Lasincronizacióndeunrelojconunrelojmaster,constadedospasos: 1. Determinarladiferenciaentrelosrelojes.Aveces,estepasopuedeconsistirenunalecturasimple del reloj master, aunque lo habitual, es que sea un proceso de ajuste continuo el que lea periódicamenteelrelojmaster,paraconseguirsincronizarlosrelojesdeformagradualconunos erroresacotados. 2. Aplicarlacorrecciónobtenidaapartirdelainformaciónestadísticadelservicioalaslecturasque solicitanlasaplicacionescliente. El proceso de sincronización necesita ser realizado de forma semi automática por un thread demonio, puestoquesueleserdelargaduración.sinembargo,laespecificaciónproporcionaciertasopcionesde controlexplícitoquepuedensergestionadasporelentornodeejecución.hayquehacernotardoscosas: 1. Lahabilidadpararealizarlasincronizacióndescritaenelpaso1,estáfueradelaespecificación. 2. Noseformulaninterfacesespecíficasdeinteroperatividad,loúnicoqueserequiereeslacapacidad delrelojpararealizarlecturasdetiemposobreelrelojmasterremoto. La especificación establece la relación entre los requisitos de sincronización y los requisitos que caracterizanlasdiferenciasentreambosrelojes.enparticular,lasderivadasdeloffsetentrelosdosrelojes soloestarándisponiblessilosrelojesestáncoordinadosatravésdeunprocesodesincronizaciónactiva. Lasinterfacesquesoportanlasincronizacióndeunrelojconunmastersontres: Lainterfaz SynchronizeBase añadeunaoperaciónprimitivaalainterfaz Clock,quepermitedeterminarel offsetentredosrelojesyelerrorqueconllevasudeterminación.requierequeelrelojseacapazdemedirel intervalodetiempoquetranscurreenlalecturadelrelojremoto(presumiblementeelmaster).laduraciónde esteintervalodeterminalaexactitudconelcualelrelojsesincronizaalmaster.lainterfazseintroduce comounmóduloparalasaplicacionesqueimplementanalgoritmosespecializadosdesincronización. Sedefinendosinterfacesadicionalesparalasincronización:lainterfazSynchronizableofreceunaoperación tipo constructor para crear instancias de objetos que implementan la interfaz SynchronizedClock. La operación newslave activalaconvergenciadelrelojesclavoparaqueconverjaelmaestro. Estosrelojes convergensuavementeentresí,ylosparámetrosdelaoperaciónestablecenelerroralquedebeconverger ladiferenciaparaconsiderarfinalizadoelajuste,asícomolosperiodosconlosquedebellevarseacabolas lecturasdelmaster. La interfaz SynchronizedClock soporta actualizaciones periódicas de la información de sincronización. Tambiénproporcionamediosparaquelasincronizaciónseacontroladaatravésderequerimientosexplícitos deformaquesepuedarecuperarlasincronización,cuandoestasehaperdido. ÁngeladelBarrioFernández 14

15 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE 2.4Arquitecturadelservicio Loselementossoftware(tipos,constanteseinterfaces)queconstituyenel TimeService seorganizanpor paquetes.enlafigura2.1,semuestranlospaquetesdefinidosylainterdependenciasentreellos. Figura2.1:ArquitecturasoftwaredelservicioTimeService[10] El ClockService reutilizalostiposdedatosdefinidosenelpaquete TimeBase.Elpaquete TimeBase se definedeformaseparadaafindequelosotrosserviciospuedanhacerusodelostiposquedeclara,sinla necesidad de utilizar interfaces del resto de paquetes. Las definiciones del paquete TimeBase de las especificacionesomgformal/ yOMGformal/ sonlasmismas. LasrestantesdefinicionesdeinterfacesestáncontenidasenelpaqueteCosClockService,yenlospaquetes agregadosclockpropertyyperiodicexecution. ElmodelodeobjetosdefinidoenelpaqueteCosClockServicesoportamúltiplesfuentesdetiempo.Lafuente demedidadetiempobaseeslainterfazclock,figura2.2.éstaofrecetambiénunaoperaciónparaacceder alaspropiedadesdelreloj. Figura2.2:EsquemadelainterfazClock AdemásdelainterfazClock,elpaqueteCosClockServiceincluyetambiénlasinterfaces: Interfaz TimeService: SoportalalecturadeltiempoinstantáneoUTCydelosintervalosdetiempo TimeSpan que son los nuevos tipos que sustituyen a los objetos encapsulados UTO 4 y TIO5 generadosenelserviciotimeservicedelaespecificaciónomgformal/ Interfaz SynchronizeBase:Interfaz queofrecenlosserviciosde tiempo para facilitarlaconversión entrediferentestiposderepresentacióndeltiempo. 4 UTO:UniversalTimeObject 5 TIO:TimeIntervalObject ÁngeladelBarrioFernández 15

16 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE InterfazSynchronizable:Incorporaunafuncionalidadestandarizadaquesirvedebaseparaincorporar algoritmospropiosespecializados,comolacreacióndeunsynchronizedclock. InterfazSychronizedClock:Correspondeaunrelojcapazdesincronizarseconundeterminadoreloj maestroconunoserroresdeacotaciónespecificados. Interfaz ControlledClock: Corresponde a un reloj que ofrece operaciones para parar, inicializar y reanudarlacuenta. InterfazPeriodicExecution:Correspondeaobjetosquegestionanlaejecuciónperiódicayaplazadade operaciones definidas como métodos de objetos de aplicación. Esta interfaz retorna objetos que implementanlainterfazcontrolleryquesonutilizadosporlaaplicaciónparagestionarelciclodevida delaejecuciónlanzada. ElpaqueteClockPropertyestáagregadocomopartedelpaqueteCosClockService,eincluyeladefiniciónde tipos,constantesyenumeradosquedescribenlaspropiedadesdelosrelojes. Laspropiedadesdeunrelojpuedenresultardeunprocesodemedidaopuedenserestablecidasentiempo de configuración como parámetro del fabricante. Las propiedades de un reloj son catalogadas como propiedades,yasísonadecuadasparaserregistradasenlosserviciosdenombres. Elesquemadelafigura2.3correspondeconlodefinidoenlaespecificaciónOMG,yseconservapara mantener la semántica. Sin embargo en la implementación realizada todos las properties se describen medianteunstringalfanuméricoquerepresentasuvalor. Figura2.3:Propiedadessoportadasporunreloj 2.5RelojesUTCytiposdedatosparalarepresentacióndeltiempo ElmóduloTimeBaseincluyetodoslostiposdedatos,enumeradosyconstantesqueseusanenelservicio. Sedefinencomounaestructuraindependienteparaquelosrestantesmódulosyserviciospuedanhaceruso comúndeellossinnecesitarparasuaccesointerfacesespecíficas,figura2.4.lostiposdefinidoseneste paquetesonválidosparalosserviciosdefinidosenlasespecificacionesomgformal/ [9]yOMG formal/ [10]. ÁngeladelBarrioFernández 16

17 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Figura2.4:Estructuradepaquetesquedescribenelservicio El paquete CosClockService incluye las definiciones tipos e interfaces definidos para la gestión de los diferentestiposderelojesquesedefinenenlaespecificaciónomgformal/ ElpaqueteClockPropertyesun paqueteagregadoenelpaquetecosclockserviceque incluyelostipos, constantes, excepciones y enumerados que se utilizan para definir las características de un reloj. PeriodicExecutionesunpaqueteagregadoenelpaqueteCosClockServicequeincluyelostipos,constantes, excepcionesyenumeradosquesedefinenparalagestióndelaejecuciónperiódicayaplazadadeuna actividad. ElpaqueteTimeBase,definelostiposdedatos,enumeradosyconstantesquesemuestranenlafigura2.5. Tipo TimeT => Representa un solo valor temporal, de 64 bits de tamaño, que mantiene el número en unidadesde100nsquehantranscurridodesdelabasedetiempos.paraeltiempoabsoluto,la baseesel15deoctubrede158200:00delcalendariogregoriano.todoslostiemposabsolutos debensercalculadosutilizandofechasdelcalendariogregoriano. TipoInaccuracyT=>Representaelvalordeinexactitudeneltiempo,enunidadesde100nanosegundos. Según la definición de la inexactitud en el campo de X/Open DCE Time Service, 48 bits son suficientesparamantenerestevalor. TipoTdfT=>Esde16bitsdetamañoytiposhortymantieneelfactortiempodedesplazamientoenforma deminutosdedesplazamientoconrespectoalmeridianodegreenwich.losdesplazamientoshacia elestedelmeridianosonpositivos,mientrasquehaciaeloestesonnegativos. ÁngeladelBarrioFernández 17

18 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Figura2.5:Estructuradelostiposdedatosdefinidosenlaespecificación TipoUtcT=>Definelaestructuradelvalordetiempoqueseutilizademanerauniversalenesteservicio.El valor básico deltiempoesde tipo TimeT yseguardaenel campo time.elhechodequeuna estructura UtcT almaceneuntiemporelativo(esdecir,unaduración),ountiempoabsolutoviene determinadoporelcontexto;noexisteningúnflagenelobjetoqueguardelainformacióndeestado (hayquetenerencuentaque,siunaestructurautctseutilizaparamantenerunespaciodetiempo, sutdf,sepondráacero). Loscamposiaccloyinacchijuntos,guardanunaestimacióndelainexactitudde48 bits.estosdos camposjuntosguardanunvalordeltipoinaccuracytalmacenadoen48bits.elcampotdfguardala informacióndelazonatemporal.lasimplementacionesdebencolocarelfactordedesplazamiento de tiempo para la zona de tiempo local en este campo, siempre y cuando creen un UTO que expreseeltiempoabsoluto. Elcampotimedeun UtcT seutilizaparaexpresareltiempoabsolutoguardandounaestructura UTC,independientemente delazonahoraria.por ejemplo,paraexpresareltiempo3:00pmen Alemania(queseencuentraunahoraalEstedelaZonadeTiempoUniversal),elcampotime,se pondráalas2:00pmdelafechadeterminada,yelcampotdfdebeserajustadoa60.estosignifica que,paracualquiervalor'utc'pertenecienteaunutct,lahorasepuedecalcularcomo: utc.time+utc.tdf* Fórmula2.1 NótesequeesposibleproducirvalorescorrectosdeUtcTponiendosiempreelcampotdfaceroy fijando el campo time a la hora UTC, sin embargo, se recomienda que las implementaciones incluyaninformacióndelhorariolocaldeparaelvalorutctqueseproducen. Tipo IntervalT => Este tipo guarda un intervalo de tiempo representado como dos valores TimeT correspondientesaloslímitesinferiorysuperiordelintervalo.unaestructuraintervaltquecontenga unlímiteinferiormayorqueellímitesuperiornoesválida.paraqueelintervalotengasentido,la basedetiemposutilizadaenelintervalosuperioreinferiordebeserlamisma,y eltiempobaseno debesercubiertoporelintervalo. LainterfazUTCdefinelasoperacionesquepuedenejecutarsesobreunobjetoquerepresentauntiempo.La interfaz UTC proporciona varias operaciones para el tiempo. Estas incluyen los siguientes grupos de operaciones: LaconstruccióndeunobjetoqueofreceunainterfazUTCapartirdesuselementos(suUtcT)yla extraccióndeelementosdeunutc(comoatributosdesololectura). Lacomparacióndetiempos. Laconversióndeuntiemporelativoaunoabsolutoylaconversiónaunintervalo. ÁngeladelBarrioFernández 18

19 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE LainterfazTimeSpanrepresentaunintervalodetiempoydefinelasoperacionesrelativasalosmismos. Permite: La construcción de un objeto que ofrezca la interfaz TimeSpan a partir de sus elementos y la extraccióndeelementosdeuntimespan. Establecercomparacionesentredosintervalosasícomoeltipodesolapamientoqueseproduce entreellos. ConstruirunUTCdondelainexactitudseaigualalTimeSpan,yelvalortemporalseaelpuntomedio delintervalo. LainterfazUtcTimeServicedefinelasoperacionesquesonimplementadasporunrelojqueproporcionala obtencióndeltiempoactual. OperaciónuniversalTime():UtcTraises(TimeUnaivalable)=>Laoperaciónuniversal_timedevuelve elvaloractualdeltiempoyrealizaunaestimadelaincertidumbreconlaqueseobtiene.elevala excepción TimeUnavailable para indicar un fallo del servidor de tiempos subyacente. El tiempo retornadoenelutctporestaoperaciónnotienegarantíasdeserseguroodeconfianza.siexiste algúntiempodisponible,estaoperaciónlodevuelve. Operación secureuniversaltime():utct raises(timeunavailable) => La operación secure_ universal_timedevuelveeltiempoactualenunutctsolosiestetiempotienegarantíasdehaber sidoobtenidodeformasegura.paragarantizaresto,eltimeservicesubyacentedebeatenersea los criterios que deben seguirse para tiempos seguros, presentados en el Apéndice B, de la especificación de OMG: Guías de Implementación. Si existe alguna incertidumbre sobre el cumplimiento de estos criterios, entonces esta operación debe devolver una excepción del tipo TimeUnavailable. Por lo tanto, siempre se puede confiar en el tiempo obtenido mediante esta operación. Operación absolute_time(in withoffset:utct): UtcT raises (TimeUnavailable) => La operación absolute_timedevuelveunnuevoutctquecontieneeltiempoabsolutocorrespondientealoffsetdel actual,medianteelparámetrowith_offset.elevalaexcepcióndata_conversionsielintentode obtenereltiempoabsolutoproduceunoverflow. 2.6Relojescontroladosodemisión Ciertosrelojespuedenserparados,reanudados,inicializadosocontroladosdecualquiermodo.Unejemplo típicodeestetipoderelojeselcronómetroquecontrolaeltiempodejuegoenunpartidodebaloncesto. Para la gestión de los relojes de este tipo se ha definido la interfaz ControlledClock. Esta interfaz proporcionaalosclienteslasoperacionesstart,stop,set,olasquefacilitanlamodificacióndelafrecuencia delreloj. Figura2.6:InterfazControlledClock Losrelojescontroladospuedentomarcomotiempodereferenciainstantespasadosofuturos,figura2.7y empezaracontareltiempotomandoestoscomoinstanteinicial.ademáspuedenirhaciadelanteohacia ÁngeladelBarrioFernández 19

20 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE atrás en función de que el parámetro ratio_factor sea positivo o negativo o correr más rápido o más despacioenfuncióndesiésteesmayoromenorquelaunidad. Figura2.7:Funcionamientoderelojescontrolados 2.7Ejecucionesperiódicasyaplazadas En sistemas en los que hay requisitos de tiempo real, es habitual definir tareas que se ejecutan periódicamente. Estas ejecuciones periódicas suelen implementarse utilizando los recursos que proporcionan el sistema operativo o los threads de los lenguajes de programación. Sin embargo, estos métodossebasanenelrelojdelsistema,ynosirvensisenecesitautilizarunrelojespecialconcretoo remoto. Con este fin, se define la interfaz PeriodicExecution. A través de ella, se puede obtener una instanciadeunobjetoqueofrecelainterfazexecutor,enlaqueinvocandosumétodoexecuteseordenala ejecucióndeunatareaperiódica.enellanzamientodelaejecucióndeunatareaperiódicaseobtienela referencia a un objeto Controller, que constituye el mecanismo con el que se controla la ejecución en marcha.lainvocacióndeunaactividadperiódicapermitepasarunúnicoparámetrodedatos,elperiodode ejecución,yeloffsetquedefinesuinstantedeinicio.otrasoperacionespermitenordenarlasuspensión, reanudaciónyfinalizacióndelasactividadesenejecución. ÁngeladelBarrioFernández 20

21 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE La especificación no proporciona medios para gestionar las excepciones que se generan durante la ejecucióndeestastareasperiódicasoaplazadas. LaespecificacióndeOMG[10],nodefineningunainterfazespecíficaparaordenarlaejecuciónaplazadade actividades.noobstante,estetipodeejecucionespuedenrealizarseatravésdelainvocaciónalainterfaz periódica,yespecificarlacuentadeejecucióna1. Figura2.8:Interfacesrelativasalaejecuciónperiódicayaplazadadetareas. ÁngeladelBarrioFernández 21

22 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE 3.SincronizaciónderelojesyprotocoloNTP 3.1ProtocoloNTP:TheNetworkTimeProtocol NTPesunprotocolodestinadoasincronizarredesdecomputadoresatravésdeunareddecomunicación [16][17].NTPestádiseñadoparapermitirlasincronizaciónderelojesdeformaqueseajustenlomáximo posiblealtiempouniversalcoordinado(utc:universaltimecoordinated),inclusoenpresenciadefuentes detiempoerróneas,ocuandolasfuentesdetiemponoseencuentrendisponiblesdeformamomentánea. Actualmente,laversiónformalizadadeNTPesla3 yestádescritaenelrfc1305[17].laversión4 suponeunarevisiónsignificativadelestándarntp,yeslaversióndedesarrolloactual,peroaúnnohasido formalizadaenunrfc.laversión4simple(sntpv4)estádescritaenelrfc2030[18]. 3.2Redesyniveles. NTPUtilizaelprotocoloUDPenelpuerto123paracomunicarseentreclientesyservidores[6].Lautilización deudp,evitalautilizacióndeanchodebandadelared,enelcasodequeunservidordetiempocon muchosclientesdejedefuncionarenundeterminadomomento. LasredesNTPfuncionandemodojerárquico,endondeunnúmeropequeñodeservidoresproporcionael tiempo a un gran número de clientes. Los clientes de cada nivel, o stratum, son a su vez servidores potencialesdemásclientesenunnúmerodestratummayor.lanumeracióndelosstratumsvaaumentando desdeelservidorprimario(stratum1)hastalosnivelesmásbajosdelajerarquía,alosquecorrespondeel nivel de stratum más alto. Los clientes, pueden obtener información de varios servidores y determinar automáticamentelamejorfuentedetiempo,figura3.1. Figura3.1:ModelojerárquicodeservidoresenNTP[16] Losrelojesdereferenciacorrespondenalnivelstratum0.Asuvez,losservidoresconectadosdirectamente aunrelojdereferenciasedenominanservidores stratum 1. Unclientedelserviciodetiemponuncase puedeconectaraunrelojstratum0directamente,siempredeberásincronizarseatravésdeunstratum1o superior. Noobstante,unservidor,apesardeserstratum1,puedeincurrirentiemposimprecisossiseconfigurapara utilizarcomorelojdereferenciasupropiorelojinterno.poresto,sesuelenutilizardiversasfuentesdetiempo paraestablecerlasincronizacióndeunsistema. LaexactituddeNTP,porlotanto,siempreestálimitadaporlafuentedetiempo.Uncliente,sincronizadocon unrelojinexacto,seráasuvezinexacto.estadependenciaseverificaalolargodetodalacadenaderelojes dereferencia.sielrelojdereferenciaestámalcalibrado,todoslosclientesdelmismoseveránafectados Tiposdeclientesyservidores LarelaciónentreclientesyservidoresNTPsepuedeconfigurarparaoperardediferentesmaneras.Por ÁngeladelBarrioFernández 22

23 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE ejemplo,unamáquinapuedeserclientedeotraconunnúmerodestratummenor,asuvez,delmismonivel o peer deotraconelmismonivelde stratum yserservidordeotrasmáquinasquetenganunnivelde stratummayorqueella. Servidor:ElservidorNTPeselencargadodeproporcionareltiempoalosclientes.Elclientelanza unapeticiónalservidoryéstedevuelveunarespuestaconsucorrespondientesellotemporal,así comoconinformaciónacercadesuinexactitudynúmerodestratum. Cliente:ElclienteNTPesquienobtienelasrespuestastemporalesdelosservidoresyutilizaesta informaciónparacalibrarsupropioreloj.elclientedeterminaladiferenciaentresurelojyeldel servidoryajustasutiempoparaquecoincidaconeldeéste.elerrormáximosedeterminaenbase altiempodeidayvueltadelpaquetetemporalqueelclienteesperarecibir. Peer:UnpeerenelcontextodeNTPesunmiembrodeungrupodeservidoresmuyunidos.Enun grupodedospeers,encualquiermomento,elpeermásprecisoactúacomoservidor,mientrasque elrestoactúancomoclientes. Servidor broadcast/multicast: Los servidores broadcast y multicast envían actualizaciones temporales periódicas a la dirección de broadcast y multicast respectivamente. Este tipo de servidoresresultaútilparadisminuireltráficoderedensistemasconmuchosclientesntp. Clientebroadcast/multicast:Unclientebroadcastomulticast,permanecealaesperadeunpaquete NTPdeladireccióndebroadcastomulticast.Cuandoserecibeelprimerpaquete,intentacualificar el retraso hasta el servidor y así poder cuantificar mejor el tiempo correcto de las emisiones posteriores. Este esquema de funcionamiento, viene acompañado además de un tipo de intercambiosbrevesdondeelclienteyelservidoractúancomoclienteyservidorntpordinarios(sin broadcast).unavezqueestosintercambiossellevanacabo,elclientetieneunaaproximacióndel retardodelaredyprocedeaestimareltiempobasándosesolamenteenlospaquetesbroadcast PrecisiónyResolución ElprotocoloNTPtardavariosminutosoinclusohorasenajustarelsistemaalúltimogradodeprecisión. Elgradodesincronizacióndeunservidordependeprincipalmentedelalatenciadelared.Laprecisiónde NTPdependeporlotantodelentornodered.ComoNTPutilizapaquetesUDP,lacongestióndetráficode redpuedeevitartemporalmentelasincronización,sinembargo,elclientepuedeseguirajustándoseenbase alhistóricodeladeriva(odrift)quemantiene. EnunaredLANenbuenascondicionessinroutersniotroselementosqueintroduzcanretardoenlared,lo normalesobtenerunaprecisióndehastapocosmilisegundos.cualquierelementoqueañadalatencia,tales comohubs,switches,routers,elevadotráficodered,reduciránlaprecisión. EnunaredWANlaprecisiónseencuentratípicamenteenelrangode10 100ms.Enelcasodeinternet,la precisióndelaexactitudnoespredecible,porloquesedebeprestarmuchaatencióncuandoseconfigura unclienteparautilizarservidoresntppúblicos. Sien unsistema se requieren precisiones mayores quelas mencionadas, se pueden emplear diversas opcionesparaconseguirlo: Conectarse directamente a un reloj de referencia: La conexión directa a un reloj de referencia, implica una precisión limitada únicamente por el reloj de referencia y las latencias hardware y softwareinvolucradasenlaconexiónconelmismo. PulsosPorSegundo(PPS):UtilizarreceptoresderadioPPS.Estesistemaconsigueprecisionesdel ordendedecenasdemicrosegundos. Precisión del Tiempo del Kernel: Existen sistemas que poseen resoluciones del orden de microsegundos o incluso mayores. NTP, utiliza la precisión temporal de los kernels de la forma definidaenelrfc1589. LaresoluciónmáximadeunamarcatemporaldeNTPesdeaproximadamente200picosegundos(eltiempo quetardaunpulsoeléctricoenrecorrer2cmdecabledecobre),porlotantolaprecisióndentpvaaestar máslimitadaporlatenciasdelhardwarequeporelpropioprotocolontp. ÁngeladelBarrioFernández 23

24 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE 3.3Algoritmosdesincronizacióndereloj 3.3.1Estimacióndeloffsetydelerror UnclienteNTPpuedeestarrelacionadoconhasta64servidores,deloscualessolo10puedenservircomo fuentesdesincronizaciónpotenciales[17].aumentarelnúmerodeservidoresesbuenopordosrazones:por unladopermiteobtenereltiempodeformamásprecisayporotroreducelaposibilidaddequeeltiempose desincroniceacausadeunafuentedetiempomalcalibrada.estasventajasestándescritasenelalgoritmo declusteringyenelalgoritmodecombinaciónderelojes. NTPnosolotratadesincronizarseauntiempocorrecto,sinoqueademáscomputaelrangodeerrorenel cliente.enrealidad,esterangodeerrorestáaltamenterelacionadoconlaeleccióndelclientedelservidor detiempo.elerrormáximoencadadirecciónsellamadispersión.ntpdeterminalamejorfuentedetiempo basándoseenvariosfactores,incluyendoeloffset,elretrasoyelfactordeerror. Eloffset eslamitaddeladiferenciaentreeltiempoquetardaunapeticióncliente/servidorylarespuesta servidor/cliente.estadiferenciasemidedesdeeltiempoenelqueelpaquetellegayabandonaelservidor,y cuandoelpaqueteabandonayllegaalcliente. Elretrasoodelay,eseltiempodeidayvueltadesdequeunasolicitudefectuadaporunclientesevuelvea recibirdevueltaenelcliente.eltiempoqueelservidorutilizaenprocesarlapeticióndelclienteserestade estetiempodeidayvuelta,yaquenosetratadeunaspectorelacionadoconlared. Elfactordeerroro errorfactor,representaloserroresrelacionadosconlaslecturasdereloj ytolerancia frecuencial. La dispersión se puede representar como la mitad del retraso más el error. La Figura3.2 proporcionaunabrevedescripcióndeloffsetderelojyladispersión. Figura3.2:OffsetyDispersión[16] Utilizandoelcasoanterior,lacantidaddetiempoquenecesitaelclienteparaajustarseconelservidordebe estarentrelosiguiente: Offset delay/2 error ajustedetiempoactual offset+delay /2 +error Fórmula3.1 Lafigura3.3ilustraelprocesoqueutilizaNTPparadeterminareloffsetyladispersión.Primero,uncliente envía una petición al servidor. Esta petición contiene el instante temporal en que ha sido enviada (de acuerdoconelrelojdelcliente), A.Lapeticiónexperimentaunretrasodered,desconocidoparaNTP,pero registrado como 0,01 segundos en este ejemplo. El servidor recibe la petición y anota el tiempo de recepción(deacuerdoconelservidor) B.Lapeticiónseprocesaymarcadaconeltiempo C (deacuerdo conelservidor).larespuestavuelveaexperimentarunretrasodebidoalared,desconocidoparantp,pero registradocomo0,02segundosenesteejemplo.elclienteentoncescompruebaésteconsutiempode recepcióndelarespuesta D.Enesteejemploeloffsetes((B A) (D C))/2,o0,005segundos.Elretrasoes (D A) (C B)o0,03segundos.Elgradodeajustedeunposibleclientequedaenelrangode 0,01sga0,02 ÁngeladelBarrioFernández 24

25 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE sg(0,005+/ 0,03/2). Figura3.3:Muestradeintercambioentreunclienteyunservidor[16] NTPnoconoceladisparidadrealentrelosrelojes,peroasume(paraconfiguracionesdeunsoloservidor) queelajustecorrectodelclienteesexactamenteelpuntomediodelintervalo.enelejemploanterior,elreloj seajustaría0,005segundos.enrealidad,paraquelosrelojessesincronicenrealmente,elajustedebería habersido0,01segundos.cuandontputilizamúltiplesrelojes,elprocedimientoesmuchomáscomplejo. NTPeligeelmejorrelojconelquesincronizarseenbaseal stratum,lalatenciadelaredylaprecisión solicitada.siunrelojseseleccionacomopreferido,seráésteelqueseelija,amenosquesutiempoestélo suficientemente alejado de los otros servidores NTP disponibles como para que se considere que está funcionandomal. CuandosesincronizanmúltiplesrelojesNTP,loslímitesdeerrordeterminanelvalordeajustedelreloj.Un entorno con una combinación de múltiples relojes puede resultar confuso y llevar a localización de problemas.lasiguienteseccióndescribeelfuncionamientodelacombinaciónderelojes Algoritmosdefiltradoeintersección Unavezserecibeunpaquete,ésteentraenunacoladepaquetesdelamismafuente.Lacolacontiene8 posicionesycuandounnuevopaquetellega,elpaquetemásviejoesdescartado.ntputilizaunalgoritmo defiltradoparareducirlosefectosdepequeñoserroresenlaprecisión.elalgoritmodefiltradoproporciona comosalidavaloresquerepresentanlamejorpredicciónparaeloffsetactualyelmáximoerrordeunreloj determinado.elfuncionamientodetalladodelalgoritmodefiltradoestádescritoenelrfc1305[17]. Laexistenciadelacolaysumododefuncionamiento, afectanalcomportamientodelprotocolo y asu velocidaddesincronizaciónconnuevosservidores.cadavezquesedeseasincronizarseconunafuente nueva,esnecesarioesperarhastarecibirdeéstaalmenos5paquetesválidos. Figura3.4:AlgoritmodeIntersección[16] ÁngeladelBarrioFernández 25

26 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Parafiltrar,NTPutilizalosintervaloscuyoserroressesolapanenunintervalo(truechimers),losrelojes cuyos valores quedan fuera del intervalo (falsetickers) se descartan. En la mayoría de los casos, los falsetickers,sonservidoresqueestánutilizandosupropiorelojinternocomorelojdereferencia.lavariación delrelojeslacausadequepocoapocoelservidorseconviertaenunfalseticker.lafigura3.4muestraun diagramadelfuncionamientodelalgoritmodeintersección Algoritmodeclustering Elalgoritmodeclusteringordenatodoslostruechimersbasándoseenunaponderacióndediversosfactores paradeterminarlacalidaddelservidor(stratum,dispersióndelrelojmaestro,retrasoalrelojmaestro,retraso conelclienteyvariacióndelerror).elcampostratumsiempreeselquetienemayorpreponderanciaenla selección.lalistaserecortaentoncesdeformaquesóloquedenenellalos10relojesmejores. Se selecciona entonces el mejor de los relojes en base al análisis histórico, a la dispersión y al error asociadoacadareloj.silafuenteactualdesincronizaciónpermaneceactiva,seutilizaautomáticamente,si no,seseleccionaelmejorrelojdelalistacomonuevafuentedesincronización Algoritmodecombinaciónderelojes Apesardequesolamenteseseleccionaunrelojcomofuentedesincronización,lacorrecciónenelrelojdel clienteseveinfluenciadaportodoslosservidoresactivosseleccionadosenelalgoritmodeclustering.el offsetdecadaunodeellosseponderaenfuncióndesucalidad(determinadaporlosfactoresdescritosen elalgoritmodeclustering).secalculalamediadelos offsetsponderadosyéstaeslaqueseutilizapara ajustarelrelojdelcliente. 3.4ServiciosNTPenLINUX LadistribuciónNTPestáintegradaporvarioscomponentes.EntreelloscabedestacareldemonioNTP,ntpd, queconstituyeelmétodousualdeutilizacióndentp. Elmododefuncionamientodeestedemonio,se estableceensuficherodeconfiguración,dondesepuedehabilitarelacceso,losservidoresdetiempo,la monitorización,laautenticación,lagestiónremotaylaaproximacióntemporal.enelmomentoquesedesee cambiarlaconfiguracióndentp,sedeberápararyreiniciarelfuncionamientodeldemonio. El programa ntpdate, permite al cliente sincronizarse con un servidor NTP sin tener que mantener un demoniodeformapermanente.solopermiteunatransacciónntpysepuedeutilizarparaefectuaruna sincronización inicial rápida antes de llamar al demonio. La carga de procesador del demonio ntpd es pequeña,porloquenoseganarádemasiadacapacidaddeshabilitándolo.ademásntpdate,alcontrarioque ntpd,nopuedelimitarladerivadelrelojbasándoseenunhistóricodedatos.ntpdrealizaunajustecontinuo, deformaqueloscambioseneltiemposeansuavesynotenganecesidadderealizarsaltostemporales. Elprogramantpq permiterealizarelseguimientodelestadodeldemoniontpd tantoenunamáquinalocal comoremota.esútilparaunadministradoryaquepermitecomprobarlaconfiguracióndeunhostremoto. Elprograma ntpdc tambiénpermiterealizarelseguimientodelestadodeldemonio ntpd enunamáquina localoremota.sinembargo,tambiénpermiterealizarcambiosdeconfiguracióndeformainstantánea. Elcommandontptrace,proporcionainformaciónsobreelnombredelcliente,sunúmerodestratum,suoffset conrespectoal host,ladistanciadesincronización,yelidentificadordelrelojdereferenciaasociadoal servidor(siesqueexiste). SisedeseasepuedehacerqueNTPguardeinformaciónestadísticadelprocesodesincronización.Existen trestiposdeficherosdeinformación:peerstats,loopstatsyclockstats.paralamayorpartedelossistemas, el fichero más interesante es el peerstats. El fichero clockstats, sólo es útil en máquinas que estén conectadas directamente a un reloj de referencia y el fichero loopstats en general solo se utiliza si se requieretiempodeprecisión. Enelficheropeerstatssepuedeencontrarinformacióndediversotipo;comoeltiempoenquehallegadoel ÁngeladelBarrioFernández 26

27 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE últimopaquetedelservidor,ladirecciónipdelservidorquemandalainformación,elestadodelsistema,el offsetestimadoconrespectoalservidor(querepresentacuántodelejosseencuentraelrelojdelclientedel servidor),elretrasodeidayvueltadelaredaesehostyladispersión(querepresentaelmáximoerror posibleeneloffsetestimado). Dia Segundo DirecciónIP Estado Offset Roundtripdelay Dispersión Skew(varianza) Tabla3.1:Ejemplodelficheropeerstatsgeneradoporntpdparaunaconfiguraciónconcreta Campos1a3: ElprimercampoindicaeldíadelCalendarioJulianoparalaentradadellog.Sepuededeterminarel diaapartirdel1deenerode2001restando51911aestenúmero. Elsegundocampoesunstampdetiempoqueindicalossegundosdeldíaquehantranscurrido. EltercercampomuestraladirecciónIPdelhostalqueserefiere. Campo4: EstecamporepresentaelestadodelhostdeladirecciónIPmencionadaenelcampo3.Estecampoesel quecontienelainformaciónmásimportanteparaeladministradordelsistema,yaquesepuededeterminar la configuración y estado para todos los servidores NTP de un cliente determinado. Este campo está constituidoporcuatrobitshexadecimales.susignificadodesglosadosepuedeverenlasfiguras3.5,3.6y 3.7.Losdosprimerosespecificanlaconfiguracióndelservidor: Figura3.5:códigosdeestadoenpeerstats ÁngeladelBarrioFernández 27

28 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Figura3.6:códigosdeestadoenpeerstats Losdígitosterceroycuartoindicaneventosquesucedenenelcliente.Eltercerdígitoindicaelnúmerode eventos que han sucedido desde el último error de NTP. Deja de incrementarse al llegar a 15 (F en hexadecimal).paraunservidorquefuncioneperfectamente,estevalordeberíaserxx1xamenosquese hayainvocadoantpqdespuésdequeelservidorhayacomenzado,encuyocasodeberíavaler0. Figura3.7:códigosdeeventoenpeerstats Loscampos5 7 Elquintocampodelficheropeerstatsmuestraeloffsetestimadoparaunhostenparticular.Estevalorse expresaensegundos.elsextocamporepresentaelretrasodeidayvueltahastaeseservidor,tambiénen segundos.elséptimoyúltimocampomuestraladispersiónensegundos.ladispersiónrepresentaelerror máximo posible del offset estimado. En otras palabras, si un servidor mantiene un tiempo correcto, la diferencia temporal entre los clientes y el tiempo correcto debe enmarcarse entre el offset menos la dispersiónyeloffsetmásladispersión. Elcampo8: Eloctavocampo,skew,representaladiferenciaentrelasfrecuenciasdelosdosrelojes. ÁngeladelBarrioFernández 28

29 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE 4.ImplementacióndelrelojUtcTimeServicesobreICE 4.1Estrategiadeimplementacióndelserviciodetiempo LaimplementacióndelservicioTimeServicequesepropone,vadestinadaaunaplataformadistribuiday heterogéneaconstituidapornudosconsistemaoperativowindowsynudosconsistemaoperativolinux, queejecutanaplicacionesdesarrolladasenloslenguajesc/c++yjava. LINUX C/C++ Code LINUX C/C++ Code C/C++ Code JVM JVM C/C++ Code C/C++ ICEmiddleware Code Java Java C/C++ Code Java Java ICEMiddleware ICEmiddleware TimeService TimeService NTP NTP Ethernet Figura4.1:Plataformadereferencia LosobjetivosylafuncionalidaddelTimeServicesonlosestablecidosenelestándar EnhacementViewof TimeSpecification OMGformal/ TodoslosnudosdelaplataformaestánconectadosentresíporunaredEthernet,yentodoslosnudos existeelmiddlwareicecomobasedecomunicaciónentrelasaplicacionesylosservicios. Algunosdelosnudostienenaccesoaservidoresdetiempoexternosoficiales: o VíaGPSparanudossituadosenzonasabiertas. o VíaRadio(WWVenEstadosUnidos,HBGenSuiza,MSFenInglaterraoTDFenFrancia). o VíaInternetatravésdelosservidoresNTPServers EneldiseñodelTimeServicesehapriorizadolaprecisiónenladeterminacióndelostiemposrelativos medidosenlosdiferentesnudosdelaplataformafrentealaprecisióndelostiemposrespectosdeltiempo oficial. LaimplementacióndelTimeServicequeseproponesebasaenlossiguientescriterios: El sistema TimeService es un sistema distribuido con un agente local en cada nudo. Los TimeService ofrecenlainterfazpúblicaicetimeservicemanaging,atravésdelacualseconfiguranycoordinancomoun únicosistemadistribuidoaniveldelaplataforma. ElrelojdesistemadecadanudoeslabasedelTimeServicelocal.ElTimeServicelocalgestionala sincronizacióndelrelojdelsistemaconlosrelojesdelosotrosnudos,ymantienelainformación estadística necesaria para comparar los tiempos obtenidos en los diferentes nudos de la plataforma. Enloscasosdequeelnudodispongadeunmecanismodesincronizaciónpropio,elTimeService lo utiliza. En este caso, el TimeService es responsable de su configuración, control y sincronización,yobtienedeéllainformaciónestadísticaconlaquecualificalostiemposquese ÁngeladelBarrioFernández 29

30 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE midenenél.esteeselcasodenudoslinux,enlosqueseutilizalaaplicacióndesincronización estándarbasadaenelprotocolontp. En los casos de que el nudo no disponga de mecanismos de sincronización comercial, el TimeService asume el mecanismo de sincronización y realiza la evaluación estadística que permitecualificarlostiemposmedidosenél.estaopciónnoestáimplementadaenestaversión. AlTimeServicedecadanudoseaccedeatravésdeunúnicopuntopúblicoqueimplementala interfaz ClockCatalog, cuya dirección está bien definida y a la que se puede acceder tanto localmentecomoremotamente.estainterfazproporcionaelaccesoalosrelojesdisponiblesenel nudo,asícomoalascaracterísticasdecadaunodeellos. La medida de un tiempo UTC en un nudo se realiza a través del único reloj que ofrece el TimeServicequeimplementalainterfazUtcTimeService.LostiemposUtcTqueseobtienendeél sonelresultadodeunalecturadeltiempobasadaenelrelojdelsistemaysucualificaciónenbase alainformaciónestadísticaqueeltimeservicetienesobrelasincronizacióndelrelojrespectode otrosrelojesdelaplataforma.aesterelojseaccedeatravésdelclockcatalogutilizandolaclave LocalClock. EncadaTimeServicelocalsepuedencrearrelojesespecialesbasadosenelrelojdelsistemadel nudo.lacreaciónoaccesoaestosrelojesserealizaatravésdelclockcatalogdeltimeservice local.enlaversiónactualsehanimplementadodostiposderelojesespeciales: Clave: ControlledClock =>PorcadainvocacióndelaoperacióngetEntry()conestaclave, creaunnuevorelojqueimplementalainterfazcontrolledclock,delqueretornasuacceso remoto. Clave: Executor =>Unainvocaciónalaoperación getentry() conestaclave,retornael accesoremotoalúnico objetoqueimplementala interfaz Executor, a travésdelquese puedegestionarinvocacionesperiódicasbasadasenelrelojdesistemalocal. Laimplementaciónqueseproponecorrespondealaarquitecturaquesedescribeenelsiguientediagrama declases: Figura4.2:ArquitecturadelTimeService. ÁngeladelBarrioFernández 30

31 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE 4.2hTimeService:Gestiónyconfiguracióndelasincronizacióndelrelojlocal LaclasehTimeServicedescribeelservidorTimeServicequeseinstalaenunnudoLINUX.Laclasees instanciadaporelprocedimientomain()queseejecutaparalainstalacióndelservicio.contienetodoslos recursosquesenecesitandisponerparaimplementarlosserviciosdefinidosenestaespecificación. Se basa en la instalación y mantenimiento de un servicio NTP que mantiene el reloj del sistema sincronizadoconlosrestantesserviciosdelared,yenlautilizacióndelpropiorelojdelsistemacomobase delafuncionalidaddelservidortimeservice. LasfuncionesqueimplementahTimeServiceson: 1. LeeeinterpretaelficheroTimeServiceConfigqueestablecelajerarquíadedependenciaNTPdel nudo respecto de los otros nudos de la plataforma distribuida. Por defecto este fichero es htimeserviceconfig.xml.peroopcionalmentepuedeserotrocuyarutasepasacomoparámetro delconstructor. 2. EselcontenedordetodosloselementosqueconstituyenelTimeService.Cuandoseconstruyeuna instancia de la clase htimeservice, recursivamente se construyen todos los elementos que constituyeneltimeservice. 3. Esdirectamenteresponsabledelagestiónycontroldelrelojdelsistemaenelquesebasael TimeService.Enparticular,esresponsabledelasincronizacióndelrelojdelsistema.Bajosucontrol segestionaelsoftwarentpquemantieneelrelojsincronizadoconelservidorquecorresponda. 4. PeriódicamentesupervisalainformaciónestadísticaquegeneraelsoftwareNTPyquerepresenta elestadodesincronizacióndelnudoconrespectoalqueenesemomentoestáestablecidocomo servidor.enfuncióndeestainformación,evalúalascaracterísticasdelosrelojesquedependendel estadodesincronizacióndelreloj. 5. DetectacuandoelservidordeNTPfalla,yentalcaso,seleccionaelnuevoservidorNTPquedebe ser utilizado. Para ello sigue la secuencia de selección establecida como parámetro de configuración. 6. Implementa e instancia un servidor hclockcatalog, que constituye el único punto de acceso al servicio TimeService.ElservidorhClockCatalogimplementalainterfazICE CatalogClock quese registradeformabiendefinidaafindepoderseraccedidaporcualquiercliente. 7. Instanciaun únicoservicio UTCTimeService,queconstituyeelmedioatravésdelquecualquier cliente puede obtener tiempos absolutos, y definir intervalos temporales. Ofrece la interfaz ICE UtcTimeService,alaquesepuedeaccederatravésdelservicioCatalogClock,utilizandolaclave LocalClock. 8. Bajorequerimientodeuncliente,implementaeinstancialaestructuradedatosquesenecesitapara implementaruncontrolledclock,yretornaelaccesoalainterfazicecontrolledclock,atravésdela que se controla. La instanciación de un nuevo ControlledClock se realiza a través del servicio CatalogClockutilizandolaclave ControlledClock. 9. Implementaunserviciodeejecucióndetareasperiódicas.AlainterfazExecutordeesteservicio, seaccedeatravésdelserviciocatalogclockconlaclave Executor. En el diagrama de clases de la figura 4.3 se describen los elementos más relevantes de la clase htimeservice. OperacionesdelaclasehTimeService: htimeservice():void=>constructordelservicio.esinvocadaporelmétodomain()queinstanciael servicio.debe: 1. Leer el fichero de configuración, y establecer los valores de los atributos básicos y establecerlaspropiedadesdelservicioquesondependientesdelficherodeconfiguración. 2. Instanciar todos los elementos que constituyen el servicio, y establecer entre ellos los enlacesquesenecesitanparaoperar. 3. Activarlosprocesosyactivarydaraltaenelmiddlewaredelosserviciosquesonpúblicos. instanceiceservers():void=>construcción,activaciónygestióndelosservidoresice:elservicio requieredelmiddlewareicelaconstrucciónydeclaracióndelconjuntodeservidoresicequeofrece ÁngeladelBarrioFernández 31

32 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE permanentementeelservicio: 1. Servidor de gestión que implementa la interfaz TimeServiceManaging. Este servidor se declaraconelidentificador managingidentifier,yenladirección managingport.ambosson pasadoscomoparámetrosdeconfiguración,sonpúblicosyconocidosporcualquiercliente quehagausodelservicio. 2. Servidordeaccesoalosrelojesqueimplementalainterfaz ClockCatalog.Esteservidorse declaraconelidentificadorcatalogidentifieryenladireccióncatalogport.ambossonpasados comoparámetrosdeconfiguración,sonpúblicosyconocidosporcualquierclientequehaga usodelservicio. 3. ServidordeaccesoalrelojUTCqueimplementalainterfaz UtcTimeService.Elservidores único, y los clientes deben solicitar siempre el acceso (proxy) a través del servicio ClockCatalog,conlacontraseña LocalClock.Elidentificadoryladireccióndelservicioson privadosparalosclientes,noobstante,afindeorganizarlaconfiguraciónglobaldelsistema, en el fichero de configuración se proporcionan unos valores que pueden ser utilizados de maneraopcional. Figura4.3:ClasehTimeService 4. Servidordeaccesoalejecutordetareasperiódicasqueimplementalainterfaz Executor.El servidoresúnico,ylosclientesdebenrequerirsiempreelacceso(proxy)atravésdelservicio ClockCatalog, con la contraseña Executor. El identificador y la dirección del servicio son privadosparalosclientes,aligualqueenelcasoanterior,afindeorganizarlaconfiguración globaldelsistema,enelficherodeconfiguraciónseproporcionanunosvaloresopcionales.por cadaejecucióndeunatareaperiódica,elserviciodeejecucióndetareasperiódicasretornael proxyaunainterfazdeltipocontroller. ÁngeladelBarrioFernández 32

33 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE synchronized_ntp():void => Gestión de la sincronización NTP. Proceso por el que se activa la sincronización del procesador local con el servidor que se haya programado en el fichero de configuración.esteprocesoimplica: 1. ConstruirelficherodeconfiguraciónNTPapartirdelosdatosdeconfiguracióndelservicio. 2. SincronizacióngruesainicialdelprocesadorconelservidorNTP. 3. ActivacióndelprocesodesincronizaciónfinaycontinuadelrelojatravésdelNTP. Cadanudorecibecomoparámetrodeconfiguración,unalistadeservidoresNTP: Sielnudoqueseconfiguraeselprimerodeesalista,seconfiguracomoservidor. Sielnudoestáenlalistadeservidores,seconfiguracomoclientedetodosaquellosquele precedenenlalista. Si el nudo no está en la lista, se configura como cliente de todos los nudos que se encuentranenlalista. supervise_ntpdata():void=>supervisióndelasincronizaciónntp:seencargadelaconstrucción delprocesodemonitorizaciónperiódicadelosresultadosdelasincronizaciónntp,delaejecución delasoperacionesnecesariasparaactualizarlosvaloresdelaspropiedadesquedependandela sincronización, y en el caso de que se presenten problemas de vivacidad, de reconfigurar el sistema. resynch_now():void=>reinicialasincronizacióndelrelojconunnuevoservidorntp.seinvoca cuandoenlasupervisiónperiódicadelosdatosdentpencuentraqueelservidornotransfiere datos. new_controlledclock():void=>funciónparalacreaciónygestiónbajodemandadelosrelojesde misión. getproperties():propertyset=>retornaelconjuntodepropiedadesdefinidaseneltimeservice. 4.3hClockCatalog:Gestiónyaccesoalosrelojes ConstituyeelpuntodeaccesodelosclientesalTimeService.ImplementalainterfazClockCatalogdefinida enelestándar,yqueesofertadacomounainterfazicequepermitealosclientesinvocarfuncionespara accederalosdiferentestiposderelojesdelservicioatravésdeclaves.elaccesodeestainterfazestábien definidoporconfiguración,porloquelosclientespuedenconstruiruobtenerelproxydeacceso. Figura4.4:InterfazClockCatalog. InterfazClockCatalog:LainterfazClockCatalogpermitealasaplicacionesdescubriryseleccionarunreloj parasuuso.tienelaintencióndeserunaalternativaligeraalautilizacióndeltradingservice(porejemplo ensistemasembebidos). OperacionesdeClockCatalog: OperacióngetEntry(withName:String):Clock*raises(UnknownEntry)=>RecuperaelProxydeaccesoa un Clock apartirdelnombrequetieneasignadooconelqueseregistró.elevalaexcepción UnknownEntrysielparámetrowithNamenocorrespondeaunrelojpreviamenteregistrado. ÁngeladelBarrioFernández 33

34 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Operación availableentries():dictionary<string,clock*>=> Recuperaelcatálogocompletodeforma queelclientepuedaseleccionarunrelojbasándoseensuspropiedadesconocidas. Operaciónregister(withName:String,entry:Clock*)=>Registraunnuevorelojenelcatálogo. OperacióndeleteEntry(withName:String)=>Eliminalaentradaqueseregistróconelnombrequese pasacomoargumento.notieneefectosielargumentocorrespondeaunaclavepredefinida ( LocalClock, Controlled y Ejecutor ). Eleva la excepción UnknownEntry si el parámetro withnamenocorrespondeaunrelojpreviamenteregistrado. LaexcepciónUnknownEntry:Indicaqueelcatálogonocontieneentradasconelnombreespecificado. LaclaseconcretahClockCatalogimplementalainterfazClockCatalog,yportantoofrecelasoperaciones declaradasenella. Figura4.5:EstructuradelaclasehClockCatalog EnlaimplementacióndelaclasehClockCatalogexistendosatributos: AtributotimeServ:hTimeService=>Referenciaalainstanciadelservicioenelqueestádefinido.Loutiliza paraimplementarsufuncionalidad. Atributoregisteredclock:Dictionary<String,Clock*>=>Constituyeunaestructuratipodiccionario,enel quesealmacenanlosproxysdelos Clock queseregistran,indexadosporsunombrequeesun String. Elconstructordelaclasees: ConstructorhClockCatalog(timeServ:hTimeService)=>ConstruyeunainstanciadehClockCatalogque seinstanciaenelhtimeservicecuyareferenciasepasacomoargumento. 4.4hUtcTimeService:Medidaycualificacióndeltiempo ElelementohUtcTimeServiceconstituyeelrelojbaseatravésdelcuallosclientesleendeformafiableel tiempoactual.implementalainterfazdefinidaporelestándarutctimeservice. CadaTimeServiceimplementaunúnicohUtcTimeServicequepuedeseraccedidoporcualquierclienteque requiera datar sus eventos. Los clientes obtienen el acceso al servicio UtcTimeService a través de ClockCatalogutilizandolaclave LocalClock. ÁngeladelBarrioFernández 34

35 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE LasoperacionesqueofreceelservicioUtcTimeServiceson: HeredadasdelainterfazClock: currenttime():timet=>devuelveeltiempoactualmedidoporelreloj. getproperties():propertyset=>retornalaspropiedadesdeclaradasdelreloj. Figura4.6:ServiciohUtcTimeService HeredadasdelainterfazUtcTimeServer: universaltime():utctraises(timeunaivalable)=>devuelveelvaloractualdeltiempoyrealizaunaestima delaincertidumbreconalqueseobtiene.elevalaexcepcióntimeunavailableparaindicarunfallo deltimeservice.eltiemporetornadoenelutctporestaoperaciónnotienegarantíasdeserseguro odeconfianza.siexistealgúntiempodisponible,estaoperaciónlodevuelve. secureuniversaltime():utctraises(timeunavailable)=>devuelveeltiempoactualenunutctsolosieste tiempotienegarantíasdehabersidoobtenidodeformasegura.paragarantizaresto,eltimeservice comprueba: o Si el servidor NTP con el que se sincroniza el reloj del time Service está activo y ha actualizadoeltiempodentrodeltiempoestablecidoporlosparámetrosdeconfiguración. o EloffsetqueactualmenteseobtienerespectodelServerNTPesinferioralmáximodefinido enlosparámetrosdeconfiguraciónmaximunoffset. Siexistealgunaincertidumbresobreelcumplimientodeestoscriterios,entoncesestaoperación debedevolverunaexcepcióndeltipotimeunavailable.porlotanto,siempresepuedeconfiar eneltiempoobtenidomedianteestaoperación. absolute_time(inwithoffset:utct):utctraises(timeunavailable)=>laoperaciónabsolute_time()devuelve unnuevoutctquecontieneeltiempoabsolutocorrespondientealoffsetdelactual,medianteel parámetrowith_offset.elevalaexcepcióndata_conversionsielintentodeobtenereltiempo absolutoproduceunrebasedevalor. 4.5hUTCyhTimeSpan:Gestióndeinstantesdetiempoeintervalostemporales LaclasehUTCesunaclaseenvolventedeuntipoUtcTdefinidoenelpaqueteTimeBaseyquerepresenta un instante de tiempo (time) representado mediante una estructura binaria de 128 bits (16 bytes). La ÁngeladelBarrioFernández 35

36 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE estructuracontiene: Tiempo (time) formulado como un entero de 64 bits que representa el tiempo transcurrido en unidades de 100 ns, y tomando como referencia en inicio del calendario gregoriano /00:00:00. Inexactitud(inaccuracy)formuladocomounenterosinsignode48bits,querepresentaeltiempode incertidumbreformuladotambiénenunidadesde100ns. Zona de desplazamiento horario (tdf) formulado como un entero con signo de 16 bits, que representaeldesplazamientomedidoenminutosdelorigenhorariadelazonaenquesemideel tiemporespectodelmeridianodegreenwich. ExistendosinterpretacionesdelsignificadoUtcT: 1. RepresentacióndeuninstantedetiempoUTCqueincluyelainexactitudconlaquefuemedida,afinde podersercomparadodeformafiableyseguraconotroinstantedetiempo. 2. Representación de un intervalo de tiempo UTC delimitado por los instantes [time inaccuracy/2, time+inaccuracy/2]. LaclasehUTCimplementalainterfazUTC,lacualproporcionafuncionesparaunagestiónsencilladela informacióndelinstantetemporaldefinidoeneldatoutctquelaclasehutcenvuelve. EnelsiguientediagramadeclasessemuestranlasoperacionesdefinidasenlainterfazUTC, Figura4.7:DiagramadeclasesdelaInterfazUTC ClasehUTC:ClaseconcretaenvolventedeuninstantedetiempocualificadoUtcT.Implementatodaslas operaciones definidas en la interfaz UTC, que tienen como objeto interpretar el instante de tiempo cualificado. Atributos: time:utct=>instantedetiempoqueesinterpretadoporlasoperacionesdelaclase.seestableceenel ÁngeladelBarrioFernández 36

37 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE constructoryesdesólolectura. OperacionesheredadasdelainterfazUTCqueimplementa: init(from:utct):utc=>constructorestáticoquegeneraunobjetoutcqueinterpretaelinstantedetiempo oelintervalodetiempodefinidoporlaestructurabinariafrom. compose(time:timet, inaccuracy:long, tdf:short): UTC => Constructor estático que genera una instanciautcapartirdesuscamposquesepasancomoparámetros. spans():timespan=>generaunainstanciatimespanquedescribeelutccomounintervalotemporal. time():timet=>retornaelinstantedetiempoquecorrespondealainstanciautctalaqueaplica. unaccuracy():long=>retornalainexactitudquecorrespondealainstanciautcalaqueseaplica. utctime():utct=>retornalaestructurabinariaqueenvuelvelainstanciautcalaqueseaplica. comparetime(comparisontype:comparisontype,withutc:utc): TimeComprison=>Comparaelinstantedetiempoquecorrespondealainstanciaalaqueseaplicaconel instantedetiempoquecorrespondealainstanciaquesepasacomoargumento withutc.enla comparaciónsetieneenconsideraciónlainexactitudconelquesehamedidocadatiempo El parámetrocompatisontypeesenumeradoyestablecelaformadecomparación: IntervaIC:Realizalacomparaciónconsiderandolainexactitud,ypuededevolverunodelos cuatrovalores. MidC : Realiza la comparación no usando la inexactitud, y en consecuencia no puede devolverelvalortcindeterminate. El resultado de la comparación se describe mediante los valores del tipo enumerado TimeComparisonquepuedetomarlosvalores: TCEqualTo:Ambostiempossontaxativamenteiguales. TCLessThan: El tiempo de la instancia es con seguridad menor que la del parámetro withutc. TCGreaterThan:Eltiempodelainstanciaesconseguridadmayor(posterior)queeldel parámetrowithutc. TCIndeterminate:Nosepuedeasegurarsieltiempodelainstanciaesmenor,mayoroigual queeldelparámetrowithutc. interval():timespan=>retornaunainstanciatimespanquedescribeelutccomounintervalotemporal. unixtimet():timespec=>retornaelinstantedelainstanciaalaqueseaplicacomountiempocompatible conunix.estoesunaestructuraquecontienedoscamposulong: sec:númerodesegundos. nsec:númerodenanosegundos Elinstantedereferenciasdetiemposesel /00:00:00 initfromunixtime(unixtime:timespec): UTC => Construye una instancia UTC a partir de un tiempo formuladoenformatounix. tmsec():integer=>segundodelhorarioquecorrespondealinstantedelainstanciautcalaqueseaplica. tmmin():integer=>minutodelhorarioquecorrespondealinstantedelainstanciautcalaqueseaplica. tmhour():integer=>horadelhorarioquecorrespondealinstantedelainstanciautcalaqueseaplica. tmmonthday():integer=>díadelmesdelcalendarioquecorrespondealinstantedelainstanciautcala queseaplica. tmmonth():integer=>mes del calendario que corresponde al instante de la instancia UTC a la que se aplica. tmyear():integer=>añodelcalendarioquecorrespondealinstantedelainstanciautcalaqueseaplica. tmisdst():boolean=>retornatrue. ÁngeladelBarrioFernández 37

38 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE asclocaltiming():string=>retornaelstringquedescribeelinstantedescritoporlainstanciaalaquese aplica,tomandocomoreferenciaelorigendehoradelazonadetiempo. ascgmtime():string=> Retorna el string que describe el instante descrito por la instancia a la que se aplica,tomandocomoreferenciaelorigendehoradegreenwich. LaclaseTimeSpanenvuelveundatodeltipoIntervalTdefinidoenelpaqueteTimeBase,querepresentaun intervalo de tiempodelimitado pordosinstantesdetiempo y que estarepresentadopor unaestructura binariade128bits(16bytes).laestructuracontiene: upperbounf:timet=> formulado como un entero de 64 bits que representa el instante final del intervalodetiempo. lowerbound:timet=>formuladocomounenterode64bitsquerepresentaelinstanteinicialdel intervalodetiempo. EnelsiguientediagramadeclasessemuestranloselementosdelaclaseTimeSpan, Figura4.8:DiagramadeclasesdelainterfazTimeSpan AtributosdelaclasehTimeSpan: interval:intervalt => Estructura binaria que envuelve la clase TimeSpan. Representa un intervalo de tiempo. OperacionesdelaclasehTimeSpanheredadasdelainterfazTimeSpan: init(from:intervalt):timespan =>ConstructorestáticoquegeneraunainstanciaTimeSpanqueenvuelve laestructurabinariaquesepasacomoparámetro. compose(lowerbound:timet, upperbound:timet):timespan => Constructor estático quegenera una instanciatimespancuyosinstantesinicialyfinalsepasacomoparámetros. lowerbound():timet=>retornaelinstantequeconstituyeelinstanteinicialdelintervalo. upperbound():timet=>retornaelinstantequeconstituyeelinstantefinaldelintervalo. timeinterval():intervalt=>retornalaestructurabinariaqueenvuelve. spans(time:utc):overlaptype=>estaoperacióndevuelveunvalordeltipooverlaptypedependiendode cómoserepresentanelintervaloenelobjetoyelintervaloformuladocomoelutctime. ElvalorOverlapTypequeretornapuedetomarloscuatrovalores:OTContainer,OTContainer,OTOverlapy OTNoOverlap.Susignificadosedescribeenlasiguientegráfica: ÁngeladelBarrioFernández 38

39 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE IntervalA IntervalB OTContainer OTContained OTOverlap OTNoOverlap Figura4.9:Tiposdeintervalos overlaps(other:timespan): OverlapType =>=> Esta operación devuelve un valor del tipo OverlapType dependiendodecómosolapanelintervalodelobjetoyelintervalodelparámetrooverlap. time():utc => Retorna formulado como una instancia UTC, el intervalo de tiempo que corresponde al intervaloquesepasacomoparámetro. 4.6EjemplodeaccesolocalyremotoalUtcTimeService ElobjetivodeestasecciónesmostrarunconjuntodeejemplostípicosdeutilizacióndelTimeServicesobre unaplataformadistribuida.elobjetivonoeshacerunacatalogaciónexhaustiva,sinoplantearunosejemplos sencillosquemuestreelsencillezdelusodelservicio. Datacióndeeventossingulares En este ejemplo, un cliente utiliza el TimeService para datar eventos que esporádicamente necesita registrar,conelobjetodequeenelfuturopuedancompararselaprecedenciatemporalconotroseventos quesehanregistradoenotrosnudosdelaplataformadistribuida. Enelsiguientediagramadesecuenciasemuestralossucesivospasosquedebeejecutarelcliente: Figura4.10:Datacióndeeventossingulares 1. ElclienteaccedeaunTimeServicedelaplataforma.Elaccesoserealizaaccediendoalainterfaz ClockCatalog,queestabiendefinidaunavezqueseconozcaelnudoenqueseencuentrainstaladoel TimeServicealqueseaccede.LoóptimoesqueelclienteaccedaalTimeServicelocal,siesteexiste. ParaaccederalainterfazClockCatalogconstruyeuobtieneelProxydeestainterfaz. ÁngeladelBarrioFernández 39

40 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE 2. ElclienteinvocalaoperacióngetEntry()conlaclave LocalClock paraobtenerelproxydelainterfaz UtcTimeService,queofreceelservicioparadatareventos. 3. Siesnecesario,elclienteinvocalaoperación getproperties() paraevaluarsilascaracterísticasdel TimeServicesonlasquenecesitaparalafuncionalidadquetieneasignada UnavezquetieneelaccesoalainterfazUtcTimeServiceelclientepuededatarloseventosinvocando lasoperacionessecureuniversaltime()ouniversaltime().ambosretornanunaestructurabinariautct quecontienetantoeltiempodedatacióncomolascaracterísticasdeinexactitudquesonnecesaria paracomparareltiempoobtenidoconotrostiemposobtenidosenotrosnodosdelsistemadistribuido. LadiferenciaentreambosmétodosesquelaoperaciónsecureUniversalTime()lanzaunaexcepciónsi elniveldesincronizacióndeltimeservicenosatisfacelosnivelesdeexactitudqueserequieren. Estetipodedatación,incorporaencadadatodetiempounaestructuraUtcTde16byteso128bits.El análisisposteriorlosdatosdetiempobinarioserealizautilizandolaclaseenvolventeutc. Datacióndesecuenciasdeeventos Enesteejemploelclientenecesitadatarunalargasecuenciadeeventos,yquiereoptimizarlacantidadde informaciónqueutilizaparaalmacenarlosdatosdetiempode esoseventos. Paraello,vautilizarcomo datodetiempounaestructurabinariatimet querequieresólo8bytes(64bits)(frentealos16bytesque requeríalaestructurautctdelejemploanterior). Esteahorrodeinformaciónimplicanoincluirlainformacióndeinexactitudencadadatodetiempo.Sin embargo,estafaltapuedesersuplidaasociandoalprimertiempodatadoounodecadaciertotiempola información UtcT completa.con esto, nosepierdecapacidadde comparaciónbajolasdossituaciones siguientes: Lostiemposdelasecuenciadifierenentreellosmenosdeldobledeltiempodesincronización.En estecasoeltiempodeinexactitudytiempodezonapermanececonstanteparatodoellas,ylas característicasasociadaalaprimeraesextrapolablealasdemás. Los tiempos de la secuencia de eventos sólo se van a comparar con eventos del mismo TimeService.Enestecaso,lamonotonicidaddelrelojenquesebasaelTimeServicegarantizala comparacióndelostiemposconindependenciadelascaracterísticasdeinexactitud. Enelsiguientediagramadesecuenciasemuestralospasosquedebeseguirelcliente: Figura4.11:Datacióndesecuenciasdeeventos ÁngeladelBarrioFernández 40

41 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Estasecuenciaessemejantealaquesehaexplicadoenelejemploanterior,salvoqueladatacióndelos eventos se realiza utilizando una primera datación haciendo uso de la operación universaltime() que incorporalainformacióndeinexactituddelostiempos,ylasrestantesdatacionesserealizanutilizandola operacióncurrenttime(). Lacomparacióndelosdatostemporalessedeberealizarextrapolandolainformacióndeinexactituddel primerdatoalosrestantes.estosemuestraenelejemplodelapartado5.3. ÁngeladelBarrioFernández 41

42 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE 5.ImplementacióndehControlledClocksobreICE 5.1Estrategiadeimplementacióndelosrelojesdemisión La clase hcontrolledclock implementa relojes especiales, que permiten medir el tiempo a partir de un determinadoevento,puedesereltiempoescaladoycontroladosuflujo(detenido,reanudado,reseteado, etc.).unhcontrolledclockimplementalasinterfacesdefinidasenelestándarclockycontrolledclock. CadavezqueelclientenecesitaunControlledClock,puederequerirloatravésdeClockCatalogutilizandola clave ControlledClock.ElTimeServicecreaunnuevoControlledClock,yproporcionaunProxyparasu gestión.siunmismocontrolledclockdebeserutilizadopordiferentesclientes,elclientequelocreapuede proporcionarelaccesoalosotros,biendirectamente,oatravésdelclockcatalogregistrandosuaccesocon unaclaveconocidaportodoslosclientes. EnelsiguientediagramadeclasessemuestraloselementosbásicosdeunhControlledClock: Figura5.1:Diagramadeclasesdeunrelojdemisión Atributosdelaclase: inittime:timet=>tiempoinicialqueutilizaparareferenciadelostiemposquemide. accumuledtime:timet=>tiempoacumuladodelrelojenunidadesfísicas.correspondealtiempomedido hastaqueserealizólaúltimaparada(seinvocópause()porúltimavez). lastresumetime:timet=>sielrelojestácorriendoeseltiempoenelquecomenzólaactualmedidade tiempo(ultimavezqueseinvocóresume). isrunning:flota=>estruesielrelojestácontandotiempo,esfalsesielrelojestáparado. ratiofactor:float=>razónentreeltiempoquecuentayeltiempofísicoquetranscurre. timeserv:htimeservice=>referenciaaltimeserviceenelqueescreado. LasoperacionesqueofreceunControlledClockson: HeredadasdelainterfazClock: currenttime():timet=>devuelveeltiempoactualmedidoporelreloj. getproperties(): PropertySet => Retorna las propiedades declaradas del reloj. Cada ControlledClock introducenuevaspropiedadesquesonespecíficas: InitTime : <dd:mm:yy/hh:mm:ss:ms> =>Retornaelinstantedereferenciadelrelojcontrolado. IsRunning : <Bolean> =>Retorna True sielrelojestácontando.retorna False sielreloj estáparado. ÁngeladelBarrioFernández 42

43 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE RatioFactor : <Float> =>Retornaelfactorescaladodeltiempoquetiene establecidoelreloj. Porejemplo: 1.0 simidetiempofísico. 1.0 sicuentatiempofísicohaciaatrás. 2.5 porcadasegundofísicoquetranscurrecuenta2.5s. Clave :String=>ClaveconelquesepuedelocalizaresteControlledClockenelClockCatalog. Retorna (Stringvacío)sielcontrolledClocknoestáregistrado. HeredadasdelainterfazControlledClock: set(to:timet)=>establecelahoraactualmantenidaporelrelojaunvalorespecificado. setrate(ratio:float) => Permiteacelerar(ratio>1),ralentizar(0<ratio<1)ocorrerhaciaatrás(ratio<0)al reloj.elparámetroratioeslarelaciónentreeltiempoconquemideelrelojyeltiemporealqueha transcurrido.porejemplosiratio=2.0,cuandoelrelojmideunintervalode10segundos,esporque laduraciónrealdelintervalofuede5.0segundos. pause()=>paraaparentementeeltranscurrirdeltiempo. resume()=>reanudaeltranscurrirdeltiempo. terminate()=>paradefinitivamenteelreloj. Constructor: hcontrolledclock(timeserv:htimeservice)=>recibecomoparámetrolareferenciadelhtimeservice enelqueescreado. 5.2Estructuradedatosdeunrelojdemisión ElestadodeunrelojdemisiónquedadefinidoporlosvaloresdesusatributosyporelvalordelrelojUTC deltimeservice.enlafigura5.2,semuestranlosvaloresdelosatributosparadosinstantesta(conreloj parado)ytb(conrelojcontando) inittime=t0 inittime=t0 lastresumetime=0 isrunning=false lastresumetime=t2 currenttime=t1 t0 currenttime=t1 t0+tb t2 accumulatedtime=t1 t0 accumulatedtime=t1 t0 isrunning=false ta t1 t0 pause() tb t2 t resume() Figura5.2:ValoresdelosatributosdeunControlledClock Elvaloractualdelrelojpuedeevaluarsedeacuerdoconlassiguientesfunciones: ÁngeladelBarrioFernández 43

44 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Sielrelojestáparado(isRunning=True): currenttime=accumulatedtime ratiofactor Sielrelojestacontando(isRunning=False): currenttime= accumulatedtime+time lastresume ratiofactor Paramantenerlaconsistenciadelosatributosdelrelojcontrolado,debenseractualizadodeacuerdocon lassiguientesreglas: SiseinvocasetTime(To:TimeT) o accumulatedtime=to; o lastresume=time; o isrunning=isrunning; Siseinvocapause() o accumulatedtime=accumulatedtime+time lastresume; o lastresume=0; o isrunning=false; Siseinvocaresume() o accumulatedtime=accumulatedtime; o lastresume=time; o isrunning=true siendotimeeltiempoquesemideenelrelojutcdeltimeservice. 5.3Ejemplodeuso,accesolocalyremotoalosrelojesdemisión Generaciónycontroldeunrelojcontrolado Enesteejemplounclientegeneraunrelojdemisión,estableciendoparaélelinstantedetiempoquese consideracomoreferencia,asícomosuescaladetiempo.posteriormentedataeventosconél,ylocontrola, parandoyreanudandolacuentadeltiemposegúnproceda. ÁngeladelBarrioFernández 44

45 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE Figura5.3:Generaciónycontroldeunrelojcontrolado 1. ElclientepropietariorequiereunrelojcontroladoatravésdelClockCatalog utilizandolaoperación getentry()conlaclave ControlledClock. 2. ElTimeServicecreainternamenteelrelojcontroladoyretornaalclienteelProxyparaaccederaél. 3. ElclienteclientOwnerutilizalaoperaciónsetTime()parainicializarelControlledClockestableciendo elinstantetemporalquesetomacomoreferencia. 4. ElclienteclientOwnerhaciendousodelaoperación setrate() estableceenelcontrolledclockla escaladetiempoquedebeutilizar. 5. ElclientepropietarioregistraenelClockCatalogconlaoperaciónregister()paraqueotrosclientes puedanaccederél. 6. El cliente coworker obtiene con la operación getentry() del ClockCatalog el Proxy del ControlledClock creado por clientowner. Para ello debe conoce y utilizar la clave con la que clientownerreistroelcontrolledclock. 7.,10.,12, UnclientecontrolaelControlledClockinvocandolaoperación pause() parapararlacuentadel tiempo,ylaoperaciónresume()parareanudarla. 8.,9.,11.,13.,14. Los clientes datan eventos haciendo uso del ControlledClock, haciendo uso del método currenttime(). ÁngeladelBarrioFernández 45

46 SERVICIODEGESTIÓNDETIEMPOSPARASISTEMAS DISTRIBUIDOSSOBREELMIDDLEWAREICE 6.ImplementacióndehExecutorsobreICE 6.1Estrategiadeimplementacióndelaejecuciónperiódicayaplazada LasclaseshExecutoryhControllersonlabasedelservicioqueofreceelTimeServiceparaejecutartareas periódicas.encadatimeservicequeofrezcaesteserviciohayunúnicoobjetodelaclasehexecutorque ofrecelainterfazestándar Executor,atravésdelaquelosclientespuedenrequerirlaejecucióndeuna tareaperiódicaoretrasada.comorespuestaaunrequerimiento,eltimeserviceconstruyelosrecursos necesariosparagestionarestainvocaciónperiódica.porcadanuevatareaquetienequeserinvocada,el TimeServicecreaunobjetodelaclasehControllerparasugestión.Losobjetosdeestaclaseimplementan lainterfazestándarcontroller,yatravésdesusfuncioneselclientequeharequeridolainvocacióndeuna tarea,puedecontrolarelciclodevidadelaejecución. Elaccesoalainterfazdelobjeto Controller se obtiene de Executor al requerir la invocación periódica o retrasada. La tarea que puede requerirse ser ejecutadadebeconsistirenlaejecucióndelmétododowork(),deunobjetoproporcionadoporelclienteque debeserunainstanciadeunaclasequeimplementalainterfazperiodicdefinidaenelestándar. Enelsiguientediagramadeclasessedescribenloselementosqueimplementanelserviciodeinvocación periódica. Figura6.1:Diagramadeclasesdelserviciodeinvocaciónperiódica 6.2TemporizadoresenLinux Linux ofrece un conjunto de funciones para crear y gestionar temprizadores (timers) que generen periódicamentelaseñalsigalrm[19],queatravésdeunmanejadorpuedeconvertirseenlaejecuciónde tareasperiodicas.esteconjuntoes: ÁngeladelBarrioFernández 46

Introducción a las redes de computadores

Introducción a las redes de computadores Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes

Más detalles

Soporte Técnico de Software HP

Soporte Técnico de Software HP Soporte Técnico de Software HP Servicios Tecnológicos HP Servicios contractuales Datos técnicos El Soporte Técnico de Software HP ofrece servicios integrales de soporte remoto de para los productos de

Más detalles

Descripción. Este Software cumple los siguientes hitos:

Descripción. Este Software cumple los siguientes hitos: WWWMONITORDBACOM Descripción Este Software cumple los siguientes hitos: a- Consola de Monitoreo b- Envío de Alertas (correo, SMS) c- Gestión de Eventos desatendidos (sea capaz ejecutar script de solución

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

UN ENTORNO A MEDIDA PARA EL DISEÑO Y LA SIMULACIÓN DE MAQUINARIA POR COMPUTADOR

UN ENTORNO A MEDIDA PARA EL DISEÑO Y LA SIMULACIÓN DE MAQUINARIA POR COMPUTADOR UN ENTORNO A MEDIDA PARA EL DISEÑO Y LA SIMULACIÓN DE MAQUINARIA POR COMPUTADOR Manuel González y Javier Cuadrado Departamento de Ingeniería Industrial II, Campus de Esteiro, 15403 Ferrol Universidad de

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Estructuras de Sistemas Operativos

Estructuras de Sistemas Operativos Estructuras de Sistemas Operativos Definicion de Sistema Operativos Un sistema operativo es un programa que actua como inter entre el usuario y el hardware de un computador y su proposito es proporcionar

Más detalles

Ingeniería de Software. Pruebas

Ingeniería de Software. Pruebas Ingeniería de Software Pruebas Niveles de prueba Pruebas unitarias Niveles Pruebas de integración Pruebas de sistema Pruebas de aceptación Alpha Beta Niveles de pruebas Pruebas unitarias Se enfocan en

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

EZ382A-FW. Contadores de Energía trífásicos, Lingg&Janke

EZ382A-FW. Contadores de Energía trífásicos, Lingg&Janke Contadores de Energía trífásicos, Lingg&Janke EZ382A-FW Contenido 1. Descripción... 2 2. Funcionalidad Facility Web... 3 3. Facility Web en el Contador de Energía... 5 4. Datos de pedido... 8 1 P ágina

Más detalles

Temporizadores y contadores en tiempo real: El módulo Timer0 y el prescaler del PIC

Temporizadores y contadores en tiempo real: El módulo Timer0 y el prescaler del PIC Temporizadores y contadores en tiempo real: El módulo Timer0 y el aler del PIC 1. Introducción...1 2. Estructura del Timer0...1 3. Funcionamiento del Timer0...2 3.1. Entrada de reloj del modulo Timer0...

Más detalles

MANUAL DE INSTALACIÓN DEL COMPONENTE WEBSIGNER ACTIVEX. Versión 4.0

MANUAL DE INSTALACIÓN DEL COMPONENTE WEBSIGNER ACTIVEX. Versión 4.0 MANUAL DE INSTALACIÓN DEL COMPONENTE WEBSIGNER ACTIVEX Versión 4.0 1 Control Versión 1.0 Fecha: 01-07-2011 Modificaciones: Primera versión. Versión 2.0 Fecha: 22-09-2011 Modificaciones: Adaptado a websigner

Más detalles

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas: SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

Gestión Dispositivos Móviles Dexon Software

Gestión Dispositivos Móviles Dexon Software Gestión Dispositivos Móviles Dexon Software INTRODUCCIÓN La gestión de dispositivos móviles es una de las principales actividades que se llevan a cabo en los departamentos de TI de cualquier compañía;

Más detalles

Análisis de aplicación: Virtual Machine Manager

Análisis de aplicación: Virtual Machine Manager Análisis de aplicación: Virtual Machine Manager Este documento ha sido elaborado por el Centro de Apoyo Tecnológico a Emprendedores bilib, www.bilib.es Copyright 2011, Junta de Comunidades de Castilla

Más detalles

Guía Rápida de Inicio

Guía Rápida de Inicio Guía Rápida de Inicio 1. Acerca de esta Guía Esta guía le ayudará a instalar y dar los primeros pasos con BitDefender Security for SharePoint. Para disponer de instrucciones detalladas, por favor, diríjase

Más detalles

Sistemas Multimedia Distribuidos. Juan A. Sigüenza Departamento de Ingeniería Informática UAM

Sistemas Multimedia Distribuidos. Juan A. Sigüenza Departamento de Ingeniería Informática UAM Sistemas Multimedia Distribuidos Juan A. Sigüenza Departamento de Ingeniería Informática UAM Componentes de un Sistema Multimedia Distribuido Software de aplicación Almacenamiento de Documentos Almacenamiento

Más detalles

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva de la solución SAP SAP Technology SAP Afaria Gestión de la movilidad empresarial para mayor ventaja competitiva Simplificar la gestión de dispositivos y aplicaciones Simplificar la gestión de dispositivos

Más detalles

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD DE SALAMANCA UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA

Más detalles

E-learning: E-learning:

E-learning: E-learning: E-learning: E-learning: capacitar capacitar a a su su equipo equipo con con menos menos tiempo tiempo y y 1 E-learning: capacitar a su equipo con menos tiempo y Si bien, no todas las empresas cuentan con

Más detalles

GUÍA BÁSICA DE INSTALACIÓN

GUÍA BÁSICA DE INSTALACIÓN Bienvenido a creomicomercio.com, donde podrá crear y personalizar su propia tienda de comercio electrónico. Esta operación la podrá realizar en pocos minutos y on-line. Desde el hosting hasta la logística

Más detalles

Software Computacional y su clasificación

Software Computacional y su clasificación Software Computacional y su clasificación Capítulo 5 El software En modo sencillo el software permite que las personas puedan contarle a la computadora cierto tipo de problemas y que ésta a su vez le ofrezca

Más detalles

Administración de la red (Windows 2008) www.adminso.es

Administración de la red (Windows 2008) www.adminso.es Administración de la red (Windows 2008) www.adminso.es INTRODUCCIÓN Esquema de red Esquema de red En esta unidad vamos a configurar los siguientes servicios:. Permite que el servidor actúe como router

Más detalles

SEMANA 12 SEGURIDAD EN UNA RED

SEMANA 12 SEGURIDAD EN UNA RED SEMANA 12 SEGURIDAD EN UNA RED SEGURIDAD EN UNA RED La seguridad, protección de los equipos conectados en red y de los datos que almacenan y comparten, es un hecho muy importante en la interconexión de

Más detalles

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la Servicios web Introducción Un servicio web es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes

Más detalles

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET 1 EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET La familia de protocolos TCP/IP fue diseñada para permitir la interconexión entre distintas redes. El mejor ejemplo es Internet: se trata

Más detalles

Unidad 1. Fundamentos en Gestión de Riesgos

Unidad 1. Fundamentos en Gestión de Riesgos 1.1 Gestión de Proyectos Unidad 1. Fundamentos en Gestión de Riesgos La gestión de proyectos es una disciplina con la cual se integran los procesos propios de la gerencia o administración de proyectos.

Más detalles

Qué se entiende por diseño arquitectónico? Comprende el establecimiento de un marco de trabajo estructural básico para un sistema. Alude a la estructura general del software y el modo en que la estructura

Más detalles

MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I 75.35. Facultad de Ingeniería, UBA. Junio 2002. Cátedra: Pablo Cosso

MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I 75.35. Facultad de Ingeniería, UBA. Junio 2002. Cátedra: Pablo Cosso MICQ Facultad de Ingeniería, UBA. Junio 2002 Trabajo Práctico Final Seminario de Ingeniería en Informática I 75.35 Cátedra: Pablo Cosso Alumno: Diego Fernando Montaldo 75.300 1 de 1 Introducción Este documento

Más detalles

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de CAPITULO 4 JUSTIFICACION DEL ESTUDIO En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de estudios previos y los alcances que justifican el presente estudio. 4.1. Justificación.

Más detalles

SIIGO PYME PLUS. Proceso de Recuperación. Cartilla I

SIIGO PYME PLUS. Proceso de Recuperación. Cartilla I SIIGO PYME PLUS Proceso de Recuperación Cartilla I Tabla de Contenido 1. Presentación 2. Qué es el Proceso de Recuperación? 3. Cuál es el Objetivo del Proceso de Recuperación? 4. Cuáles son los Pasos que

Más detalles

Arquitectura de sistema de alta disponibilidad

Arquitectura de sistema de alta disponibilidad Mysql Introducción MySQL Cluster esta diseñado para tener una arquitectura distribuida de nodos sin punto único de fallo. MySQL Cluster consiste en 3 tipos de nodos: 1. Nodos de almacenamiento, son los

Más detalles

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente: Departamento de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Antioquia Arquitectura de Computadores y Laboratorio ISI355 (2011 2) Práctica No. 1 Diseño e implementación de una unidad aritmético

Más detalles

DESCRIPCION GENERAL DEL PROGRAMA GESTECNET

DESCRIPCION GENERAL DEL PROGRAMA GESTECNET DESCRIPCION GENERAL DEL PROGRAMA GESTECNET \\Fileserver-1\Manuales\GestecNET\20090205 Descripcion del Programa GestecNet.doc - 1 - EXTRUCTURA DEL PROGRAMA GESTECNET GestecNET es una solución para la gestión

Más detalles

Movilidad. Pasa demasiado tiempo fuera de la oficina? Solución móvil Dynamics NAV

Movilidad. Pasa demasiado tiempo fuera de la oficina? Solución móvil Dynamics NAV Pasa demasiado tiempo fuera de la oficina? Movilidad Solución móvil Dynamics NAV Avda. Autopista del Saler nº 4. Bloque 2, Puerta A7 (Edificio Politaria) 46013 Valencia T. +34 963 744 875 www.redmond.es

Más detalles

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema Capítulo2 Planteamientodelproblema 38 2.1Antecedentesycontextodelproyecto En lo que respecta a los antecedentes del proyecto, se describe inicialmente el contexto donde se utiliza el producto de software.

Más detalles

Gestión de la Configuración

Gestión de la Configuración Gestión de la ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ESTUDIO DE VIABILIDAD DEL SISTEMA... 2 ACTIVIDAD EVS-GC 1: DEFINICIÓN DE LOS REQUISITOS DE GESTIÓN DE CONFIGURACIÓN... 2 Tarea EVS-GC 1.1: Definición de

Más detalles

COLEGIO COMPUESTUDIO

COLEGIO COMPUESTUDIO COLEGIO COMPUESTUDIO ÁREA: TECNOLOGIA E INFORMATICA DOCENTE: WILLY VIVAS LLOREDA ESTUDIANTE: CLEI: III GUIA N 5 N SESIONES: NUCLEO TEMÁTICO: UNIDAD: 2 Sistema operativo (Windows) OBJETIVO: Comprender el

Más detalles

Planificación, Gestión y Desarrollo de Proyectos

Planificación, Gestión y Desarrollo de Proyectos Planificación, Gestión y Desarrollo de Proyectos Conceptos básicos Planificación de un proyecto Gestión de un proyecto Desarrollo de un proyecto 1 Conceptos básicos: Proyecto Conjunto de actividades que

Más detalles

6. SISTEMAS CAD-CAM (CAM) 6.1. CONCEPTO DE CAM

6. SISTEMAS CAD-CAM (CAM) 6.1. CONCEPTO DE CAM 6.1. CONCEPTO DE CAM Las siglas CAM corresponden al acrónimo de Computer Aided Manufacturing, Fabricación asistida por ordenador. Por CAM se entiende la utilización de ordenadores para tareas técnicas

Más detalles

Sistema de SaaS (Software as a Service) para centros educativos

Sistema de SaaS (Software as a Service) para centros educativos Sistema de SaaS (Software as a Service) para centros educativos Definiciones preliminares: Qué es SaaS? SaaS (1) es un modelo de distribución del software que permite a los usuarios el acceso al mismo

Más detalles

Servicio de gestión de tiempos para sistemas distribuidos sobre el middleware ICE

Servicio de gestión de tiempos para sistemas distribuidos sobre el middleware ICE Programa Oficial de Postgrado en Ciencias, Tecnología y Computación Máster en Computación Facultad de Ciencias Universidad de Cantabria Servicio de gestión de tiempos para sistemas distribuidos sobre el

Más detalles

PERFIL TÉCNICO ANALISTA-PROGRAMADOR

PERFIL TÉCNICO ANALISTA-PROGRAMADOR PLIEGO DE PRESCRIPCIONES TÉCNICAS PARA LA CONTRATACIÓN DE LA CONSULTORÍA Y ASISTENCIA PARA LOS PROYECTOS WEB EN EL TRIBUNAL CONSTITUCIONAL PERFIL TÉCNICO ANALISTA-PROGRAMADOR 1 Índice Antecedentes... 3

Más detalles

Implantación y Aceptación del Sistema

Implantación y Aceptación del Sistema y Aceptación del Sistema 1 y Aceptación del Sistema ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD IAS 1: ESTABLECIMIENTO DEL PLAN DE IMPLANTACIÓN...5 Tarea IAS 1.1: De finición del Plan de... 5 Tarea IAS

Más detalles

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante Modulo 2. Inicio con Java Muchas veces encontramos en nuestro entorno referencias sobre Java, bien sea como lenguaje de programación o como plataforma, pero, que es en realidad Java?, cual es su historia?,

Más detalles

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS Instalación y mantenimiento de servicios de Internet U.T.3.- Servicio DNS 1 Qué es el servicio DNS? A los usuarios de Internet les resulta complicado trabajar con direcciones IP, sobre todo porque son

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

Implantar Microsoft Software Updates Service (SUS)

Implantar Microsoft Software Updates Service (SUS) Implantar Microsoft Software Updates Service (SUS) Guía rápida de instalación Versión: 1.0 Autor: Paulino Insausti Barrenetxea Fecha: 15 de Junio de 2005 Licencia: CreativeCommons - ShareAlike Indice 1.Introducción...

Más detalles

Capas del Modelo ISO/OSI

Capas del Modelo ISO/OSI Modelo ISO/OSI Fue desarrollado en 1984 por la Organización Internacional de Estándares (ISO), una federación global de organizaciones que representa aproximadamente a 130 países. El núcleo de este estándar

Más detalles

Beneficios estratégicos para su organización. Beneficios. Características V.2.0907

Beneficios estratégicos para su organización. Beneficios. Características V.2.0907 Herramienta de inventario que automatiza el registro de activos informáticos en detalle y reporta cualquier cambio de hardware o software mediante la generación de alarmas. Beneficios Información actualizada

Más detalles

Arquitectura de red distribuida: escalabilidad y equilibrio de cargas en un entorno de seguridad

Arquitectura de red distribuida: escalabilidad y equilibrio de cargas en un entorno de seguridad Arquitectura de red distribuida: escalabilidad y equilibrio de cargas en un entorno de seguridad por Warren Brown Las compañías multinacionales y los hospitales, universidades o entidades gubernamentales

Más detalles

Procedimiento. Actualización de Kit de Conexión de Comercios Webpay versión 5.X a 6.0.2. Canales Remotos Operaciones. Transbank S.A.

Procedimiento. Actualización de Kit de Conexión de Comercios Webpay versión 5.X a 6.0.2. Canales Remotos Operaciones. Transbank S.A. [Código] Versión [n.n] Procedimiento Actualización de Kit de Conexión de Comercios Webpay versión 5.X a 6.0.2 Canales Remotos Operaciones Uso restringido a comercios Actualización KCC Webpay 6.0 a 6.0.2

Más detalles

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Entre los más conocidos editores con interfaz de desarrollo tenemos: Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

DIRECCIÓN DE DESARROLLO TECNOLÓGICO PROCEDIMIENTO PARA GESTIÓN DE DESARROLLO TECNOLÓGICO

DIRECCIÓN DE DESARROLLO TECNOLÓGICO PROCEDIMIENTO PARA GESTIÓN DE DESARROLLO TECNOLÓGICO DIRECCIÓN DE DESARROLLO TECNOLÓGICO PROCEDIMIENTO PARA GESTIÓN DE DESARROLLO TECNOLÓGICO PROCEDIMIENTO PARA GESTIÓN DE DESARROLLO TECNOLÓGICO PROCEDIMIENTO PARA GESTIÓN DE DESARROLLO TECNOLÓGICO n Objetivo

Más detalles

Workflows? Sí, cuántos quiere?

Workflows? Sí, cuántos quiere? Workflows? Sí, cuántos quiere? 12.11.2006 Servicios Profesionales Danysoft Son notables los beneficios que una organización puede obtener gracias al soporte de procesos de negocios que requieran la intervención

Más detalles

Calidad Escuela de Ingeniería de Sistemas y Computación Desarrol o de Software II Agosto Diciembre 2007

Calidad Escuela de Ingeniería de Sistemas y Computación Desarrol o de Software II Agosto Diciembre 2007 Calidad Calidad Definición de diccionario: Conjunto de Cualidades que constituyen la manera de ser de una persona o cosa. En términos generales podemos definir la calidad como conjunto de características

Más detalles

Trabajo TICO Unidad 2: Sistemas Operativos. Guillermo Jarne Bueno.

Trabajo TICO Unidad 2: Sistemas Operativos. Guillermo Jarne Bueno. Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un administrador de los recursos

Más detalles

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto Introducción: Sobre casi cualquier tema del quehacer humano que se aborde, existen

Más detalles

Gestión de Configuración del Software

Gestión de Configuración del Software Gestión de Configuración del Software Facultad de Informática, ciencias de la Comunicación y Técnicas Especiales Herramientas y Procesos de Software Gestión de Configuración de SW Cuando se construye software

Más detalles

CAPÍTULO 3 Servidor de Modelo de Usuario

CAPÍTULO 3 Servidor de Modelo de Usuario CAPÍTULO 3 Servidor de Modelo de Usuario Para el desarrollo del modelado del estudiante se utilizó el servidor de modelo de usuario desarrollado en la Universidad de las Américas Puebla por Rosa G. Paredes

Más detalles

Trebelius SISTEMA INTEGRADO DE GESTION DE CLINICAS

Trebelius SISTEMA INTEGRADO DE GESTION DE CLINICAS Trebelius SISTEMA INTEGRADO DE GESTION DE CLINICAS TREBELIUS es un Sistema Integrado de Gestión de última generación especializado en centros y clínicas de Belleza, Salud y Estética. TREBELIUS está desarrollado

Más detalles

Servicios para la creación de una campaña publicitaria en Google AdWords

Servicios para la creación de una campaña publicitaria en Google AdWords Servicios para la creación de una campaña publicitaria en Google AdWords Resumen Ejecutivo El objetivo de la presente propuesta es brindar los servicios para asistir al Cliente en la creación de su campaña

Más detalles

Información sobre seguridad

Información sobre seguridad Información sobre seguridad SMART kapp incluye características de protección de datos diseñadas para mantener el contenido controlador de forma predecible. En esta página se explican las características

Más detalles

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets 1 de 12 Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets 3 Bienvenida. 4 Objetivos. 5 Interacciones de Negocios

Más detalles

PROCEDIMIENTO DE EVALUACIÓN Y ACREDITACIÓN DE LAS COMPETENCIAS PROFESIONALES CUESTIONARIO DE AUTOEVALUACIÓN PARA LAS TRABAJADORAS Y TRABAJADORES

PROCEDIMIENTO DE EVALUACIÓN Y ACREDITACIÓN DE LAS COMPETENCIAS PROFESIONALES CUESTIONARIO DE AUTOEVALUACIÓN PARA LAS TRABAJADORAS Y TRABAJADORES MINISTERIO DE EDUCACIÓN, CULTURA Y DEPORTE SECRETARÍA DE ESTADO DE EDUCACIÓN, FORMACIÓN PROFESIONAL Y UNIVERSIDADES DIRECCIÓN GENERAL DE FORMACIÓN PROFESIONAL INSTITUTO NACIONAL DE LAS CUALIFICACIONES

Más detalles

WINDOWS 2008 5: TERMINAL SERVER

WINDOWS 2008 5: TERMINAL SERVER WINDOWS 2008 5: TERMINAL SERVER 1.- INTRODUCCION: Terminal Server proporciona una interfaz de usuario gráfica de Windows a equipos remotos a través de conexiones en una red local o a través de Internet.

Más detalles

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA E. SÁEZ, M. ORTIZ, F. QUILES, C. MORENO, L. GÓMEZ Área de Arquitectura y Tecnología de Computadores. Departamento de Arquitectura

Más detalles

La Pirámide de Solución de TriActive TRICENTER

La Pirámide de Solución de TriActive TRICENTER Información sobre el Producto de TriActive: Página 1 Documento Informativo La Administración de Sistemas Hecha Simple La Pirámide de Solución de TriActive TRICENTER Información sobre las Soluciones de

Más detalles

Tema 1. Conceptos fundamentales de los Sistemas Operativos

Tema 1. Conceptos fundamentales de los Sistemas Operativos Tema 1. Conceptos fundamentales de los Sistemas Operativos 1. Introducción a los Sistemas Operativos. 1. Concepto de Sistema Operativo. Niveles del software. 2. Funciones principales de un Sistema Operativo.

Más detalles

LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52)

LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52) LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52) LENGUAJES DE PROGRAMACIÓN WEB (PHP, HTML5) 1 Sesión No. 1 Nombre: Arquitectura Objetivo: Conocer cómo funciona y se planifica una aplicación web Contextualización

Más detalles

Gestión de Requisitos ULPGC

Gestión de Requisitos ULPGC Gestión de Requisitos ULPGC Gestión de Requisitos Consiste en gestionar los cambios de los requisitos, las relaciones entre ellos, las dependencias entre la especificación de requisitos y otros documentos

Más detalles

sistemas de información empresarial Nexus Nexus E-Commerce NEXUS e-commerce

sistemas de información empresarial Nexus Nexus E-Commerce NEXUS e-commerce Nexus Filosofía, es una plataforma que debe servir para mejorar y ampliar los procesos de venta con nuestros clientes. Debe existir una experiencia dilatada en la gestión tradicional del negocio. Se consigue

Más detalles

Capitulo I. Introducción

Capitulo I. Introducción Capitulo I. Introducción 1.1 Descripción del trabajo El ser humano, como todos sabemos tiene la necesidad de comunicarse, de ser escuchado y sobretodo interactuar con los demás seres vivos que lo rodean.

Más detalles

Capítulo 6: Conclusiones

Capítulo 6: Conclusiones Capítulo 6: Conclusiones 6.1 Conclusiones generales Sobre el presente trabajo se obtuvieron varias conclusiones sobre la administración del ancho de banda en una red inalámbrica, basadas en la investigación

Más detalles

Sistema de Captura Electrónica

Sistema de Captura Electrónica Sistema de Captura Electrónica Instructivo de Instalación y Configuración de Lote Server a PC Versión del Documento v2.01 INDICE INDICE... 2 Consideraciones generales de las aplicaciones... 4 Especificaciones

Más detalles

Conexión ODBC Visual Basic - MSQL. Cristian Vidal Silva

Conexión ODBC Visual Basic - MSQL. Cristian Vidal Silva Conexión ODBC Visual Basic - MSQL Cristian Vidal Silva Qué es un Sistema Cliente Servidor Puede ejecutarse en al menos dos computadores distintos. Existen Procesos Clientes y Procesos Servidores. Un Proceso

Más detalles

Sistema de Gestión y Consulta Documental. eprocess

Sistema de Gestión y Consulta Documental. eprocess Sistema de Gestión y Consulta Documental eprocess MACROBIT - DEPARTAMENTO DE DESARROLLO MARZO DE 2003 1 TABLA DE CONTENIDOS Capítulo 1: Introducción... 3 Capítulo 2: eprocess Manager... 6 Capítulo 3: eprocess

Más detalles

<Generador de exámenes> Visión preliminar

<Generador de exámenes> Visión preliminar 1. Introducción Proyecto Final del curso Técnicas de Producción de Sistemas Visión preliminar Para la evaluación de algunos temas de las materias que se imparten en diferentes niveles,

Más detalles

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV Página 1 de 6 1. OBJETIVO El presente documento tiene la finalidad de citar los beneficios de la migración de la herramienta de análisis de riesgo, mantenimiento e inspección que en lo sucesivo se denominará

Más detalles

Click&Go. Descripción General. Estructura

Click&Go. Descripción General. Estructura Click&Go Descripción General Click&Go es un servicio por el cual ponemos a disposición de nuestros clientes, cartografía inteligente y aplicaciones a través de Internet, permitiendo que diferentes aplicaciones

Más detalles

FileMaker Pro 13. Uso de una Conexión a Escritorio remoto con FileMaker Pro 13

FileMaker Pro 13. Uso de una Conexión a Escritorio remoto con FileMaker Pro 13 FileMaker Pro 13 Uso de una Conexión a Escritorio remoto con FileMaker Pro 13 2007-2013 FileMaker, Inc. Reservados todos los derechos. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054

Más detalles

beservices 2015 Resumen de características técnicas

beservices 2015 Resumen de características técnicas Resumen de características técnicas behelp MANTENIMIENTO de COBERTURA TOTAL Sistema automatizado basado en los servicios gestionados en el que la prioridad es la Proactividad eliminando las incidencias

Más detalles

Soluciones Informáticas para la Gestión de la Calidad c/vicente Aleixandre nº 10 4º H, 15009 A CORUÑA Telf: 981 133 207 / 616 145 723 info@spuch.

Soluciones Informáticas para la Gestión de la Calidad c/vicente Aleixandre nº 10 4º H, 15009 A CORUÑA Telf: 981 133 207 / 616 145 723 info@spuch. MANUAL DE USUARIO Índice Índice... 2 Introducción... 2 Pantalla inicial... 3 Conectar las bases de datos... 4 Periodicidad de sincronización... 6 Reglas de sincronización... 7 Ejecutar consultas SQL...

Más detalles

Monitorización de sistemas y servicios

Monitorización de sistemas y servicios Monitorización de sistemas y servicios Contenidos Contenidos... 1 Resumen ejecutivo... 2 Arquitectura de la plataforma de monitorización... 2 Monitorización y alarmas... 3 Monitorización... 3 Servicios

Más detalles

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera Capítulo 4. Llamada Telefónica En este capítulo se explicará la manera en que se configuraron las herramientas web (PHP y APACHE), y el programa de comunicación Skype, para controlar de manera dinámica

Más detalles

Qué es Clé Manager? Clé-Manager, permite que todas las personas que intervienen en proceso de requerimientos, tengan conocimiento de, cual es:

Qué es Clé Manager? Clé-Manager, permite que todas las personas que intervienen en proceso de requerimientos, tengan conocimiento de, cual es: Qué es Clé Manager? Es un sistema Web de administración de requerimientos. Orientado a permitir la correcta gestión de atención de requerimientos en el departamento de sistemas, a través de este software,

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

Introducción. Definición de los presupuestos

Introducción. Definición de los presupuestos P o r q u é e l p r e s u p u e s t o d e b e s e r e l c a m i n o a s e g u i r p a r a g a r a n t i z a r e l é x i t o d e s u e m p r e s a? Luis Muñiz Economista Introducción El aumento de la incertidumbre

Más detalles

Integración de AuraPortal con SAP

Integración de AuraPortal con SAP Integración de AuraPortal con SAP Se puede definir como la estrategia empresarial enfocada a gestionar los procesos de negocio. BPM se soporta sobre tecnología de información para automatizar tareas y

Más detalles

CAPITULO IV CONCLUSIONES Y RECOMENDACIONES

CAPITULO IV CONCLUSIONES Y RECOMENDACIONES CAPITULO IV CONCLUSIONES Y RECOMENDACIONES VERIFICACIÓN DE OBJETIVOS El objetivo general del proyecto ha sido cumplido satisfactoriamente en la Unidad de Sistemas de PETROECUADOR, realizando el análisis

Más detalles

LIESH. Fco. Javier Bohórquez Ogalla

LIESH. Fco. Javier Bohórquez Ogalla LIESH Fco. Javier Bohórquez Ogalla 1 Índice 1. Descripción 3 2. Estructura de funcionamiento 3 2.1. Kernel LIESH.................................. 4 2.2. Programas escritos en LIESH.........................

Más detalles

Infraestructura Tecnológica. Sesión 5: Arquitectura cliente-servidor

Infraestructura Tecnológica. Sesión 5: Arquitectura cliente-servidor Infraestructura Tecnológica Sesión 5: Arquitectura cliente-servidor Contextualización Dentro de los sistemas de comunicación que funcionan por medio de Internet podemos contemplar la arquitectura cliente-servidor.

Más detalles

10 razones para cambiarse a un conmutador IP

10 razones para cambiarse a un conmutador IP 10 razones para cambiarse a un conmutador IP Los beneficios de reemplazar su antiguo conmutador por un conmutador IP Nick Galea* Introducción Este artículo explica los 10 principales beneficios de un conmutador

Más detalles

Capitulo 5. Implementación del sistema MDM

Capitulo 5. Implementación del sistema MDM Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo

Más detalles

PRIMAVERA RISK ANALYSIS

PRIMAVERA RISK ANALYSIS PRIMAVERA RISK ANALYSIS CARACTERÍSTICAS PRINCIPALES Guía de análisis de riesgo Revisión del programa Plantilla de riesgo instantáneo Asistente para registro de riesgo Registro de riesgo Análisis de riesgo

Más detalles

Servidores de nombres de dominio (DNS) Jesús Torres Cejudo

Servidores de nombres de dominio (DNS) Jesús Torres Cejudo Zonas Zona de Búsqueda Directa.- Las resoluciones de esta zona devuelven la dirección IP correspondiente al recurso solicitado; este tipo de zona realiza las resoluciones que esperan como respuesta la

Más detalles

Instalación. Interfaz gráfico. Programación de Backups. Anexo I: Gestión de la seguridad. Manual de Usuario de Backup Online 1/21.

Instalación. Interfaz gráfico. Programación de Backups. Anexo I: Gestión de la seguridad. Manual de Usuario de Backup Online 1/21. 1/21 Instalación Interfaz gráfico Requerimientos Proceso de instalación Pantalla de login Pantalla principal Descripción de los frames y botones Programación de Backups Botones generales Botones de programación

Más detalles