211service.com
Mindre klodset kode til skyen
Cloud computing giver virksomheder mulighed for at lagre og behandle data mere effektivt end nogensinde. Men koden, der bruges til at styre maskinerne i en computersky, forbliver overraskende klodset. Nu udforsker nogle forskere nye programmeringssprog til at styre skyen, og de låner en tilgang udviklet i 80'erne.
De fleste programmeringssprog er aldrig designet til at håndtere så mange computere eller så meget data spredt ud over dem. Softwarerammer såsom Googles MapReduce og en åben konkurrent kaldet Hadoop giver praktiske værktøjer til at gøre dette. Men der er plads til at gøre processen meget mere effektiv.
Vi kan ikke blive ved med at programmere computere, som vi er, siger Joseph Hellerstein , professor i datalogi ved University of California i Berkeley. Hellerstein er involveret i et projekt kaldet BOM , rettet mod at udvikle nye teknikker til programmering af skyen. Folk har ikke en nem måde at skrive programmer på, der udnytter det faktum, at de kunne leje 100 maskiner hos Amazon.
De fleste softwareprogrammer består af instruktioner, der fortæller en computer at udføre en række handlinger i en bestemt rækkefølge. En af de store fordele ved cloud computing er, at det gør det muligt at dele et program op, så forskellige instruktioner kan behandles på samme tid. Men det er svært at skrive den nødvendige kode for at gøre det med de fleste programmeringssprog, og dette problem resulterer i oppustet software.
Hellerstein ønsker at gøre det muligt at bygge software, der kører i meget større skala – på tværs af tusindvis af cloud-baserede maskiner – ved at bruge langt mindre kode. For at gøre dette henvendte han sig til forskning udført i 80'erne om at programmere databaser effektivt. Hellerstein siger, at databaseteknologier, som kan indsamle store datasæt og behandle dem på en række forskellige måder, kunne være særlig succesfulde til at udnytte den nye computerkraft.
En grund er, at databaseoplysninger ofte behandles i batches, og det er lige meget, hvilken ordre en computer bruger til at håndtere disse batches. Dette gør det nemt for programmører at opdele databaseopgaver mellem en masse processorer. Faktisk så let, at programmer af denne art nogle gange omtales som pinligt parallelle.
Hellersteins gruppe ændrede et gammelt sprog kaldet Datalog for at gøre det muligt at skrive programmer til skyen. Problemet, siger Hellerstein, er at finde ud af, hvor meget af et program, der kan ske samtidigt, og at identificere tidspunkter, hvor det absolut skal stoppe og indsamle information om status for forskellige opgaver. Gruppen er i øjeblikket ved at udvikle et sprog kaldet Bloom for at give programmører en venlig måde at håndtere den ofte komplekse syntaks i det underliggende system baseret på Datalog.
Hellerstein håber, at Bloom vil hjælpe programmører med at skrive software til skyen uden at skulle gå helt væk fra velkendte sprog. Hellersteins gruppe designer Bloom som et bibliotek, der kan bruges med populære sprog som Java og Python. Brug af Bloom på et af disse sprog vil tilskynde programmører til at designe software, der bruger de ressourcer, der er tilgængelige i skyen, mest effektivt. Dette sparer også programmører for at skulle lære et helt nyt sprog.
Georg Gottlob , professor ved Oxford University Computing Laboratory og ekspert i Datalog, siger, at det giver meget mening at bruge sproget til at håndtere applikationer i web-skala. Da Datalog blev opfundet, siger han, kom det for tidligt til at blive brugt bredt på grund af den begrænsede processorkraft på det tidspunkt. Med udbredelsen af distribueret databehandling, siger Gottlob, har sproget fået en stor renæssance.
Det er her, fremtiden går, siger Elias Torres, der bruger cloud computing-værktøjer hos flere startup-virksomheder. For flere år siden var Torres i stand til at bruge en forløber for Bloom i et projekt for at forenkle en kompleks protokol for distribuerede systemer. Det var oplysende, for jeg kunne fokusere på de data, der strømmede gennem systemet, siger han.
I dag, siger Torres, skal du forstå, hvordan dataene skal lagres og organiseres og tilgås for at gøre fremskridt. Enhver webapplikation skal håndtere en stadigt voksende mængde data, og Torres mener, at programmører vil finde værktøjer som Bloom mere og mere nyttige.