211service.com
Minder onhandige code voor de cloud
Cloud computing stelt bedrijven in staat om gegevens efficiënter dan ooit op te slaan en te verwerken. Maar de code die wordt gebruikt om de machines in een computercloud te besturen, blijft verrassend onhandig. Nu onderzoeken sommige onderzoekers nieuwe programmeertalen voor het besturen van de cloud, en lenen ze een benadering die in de jaren '80 is ontwikkeld.
De meeste programmeertalen zijn nooit ontworpen om zoveel computers aan te kunnen of zoveel gegevens die erover verspreid zijn. Software frameworks zoals Google MapReduce en een open concurrent genaamd Hadoop bieden hiervoor handige tools. Maar er is ruimte om het proces veel efficiënter te maken.
We kunnen computers niet blijven programmeren zoals we zijn, zegt Joseph Hellerstein , een professor in computerwetenschappen aan de Universiteit van Californië in Berkeley. Hellerstein is betrokken bij een project genaamd BOOM , gericht op het ontwikkelen van nieuwe technieken voor het programmeren van de cloud. Mensen hebben geen gemakkelijke manier om programma's te schrijven die profiteren van het feit dat ze 100 machines bij Amazon kunnen huren.
De meeste softwareprogramma's bestaan uit instructies die een computer vertellen een reeks acties in een bepaalde volgorde uit te voeren. Een van de grote voordelen van cloud computing is dat het het mogelijk maakt om een programma op te splitsen, zodat verschillende instructies tegelijkertijd kunnen worden verwerkt. Maar het is moeilijk om de code te schrijven die nodig is om dat te doen met de meeste programmeertalen, en dit probleem resulteert in opgeblazen software.
Hellerstein wil het mogelijk maken om software te bouwen die op een veel grotere schaal draait - op duizenden cloudgebaseerde machines - met veel minder code. Om dit te doen, wendde hij zich tot onderzoek uit de jaren '80 naar het efficiënt programmeren van databases. Hellerstein zegt dat databasetechnologieën, die grote hoeveelheden gegevens kunnen verzamelen en deze op verschillende manieren kunnen verwerken, bijzonder succesvol kunnen zijn in het profiteren van de nieuwe rekenkracht.
Een reden is dat database-informatie vaak in batches wordt verwerkt, en het maakt niet uit in welke volgorde een computer deze batches verwerkt. Dit maakt het voor programmeurs gemakkelijk om databasetaken over veel processors te verdelen. Zo eenvoudig zelfs dat dergelijke programma's soms beschamend parallel worden genoemd.
De groep van Hellerstein heeft een oude taal, Datalog genaamd, aangepast om programma's voor de cloud te kunnen schrijven. Het probleem, zegt Hellerstein, is uitzoeken hoeveel van een programma tegelijkertijd kan plaatsvinden, en het identificeren van momenten waarop het absoluut moet stoppen en het verzamelen van informatie over de status van verschillende taken. De groep ontwikkelt momenteel een taal genaamd Bloom om programmeurs een vriendelijke manier te bieden om met de vaak complexe syntaxis van het onderliggende systeem op basis van Datalog om te gaan.
Hellerstein hoopt dat Bloom programmeurs zal helpen bij het schrijven van software voor de cloud zonder de vertrouwde talen volledig te hoeven verlaten. De groep van Hellerstein ontwerpt Bloom als een bibliotheek die kan worden gebruikt met populaire talen zoals Java en Python. Het gebruik van Bloom in een van die talen zou programmeurs aanmoedigen om software te ontwerpen die de beschikbare bronnen in de cloud het meest efficiënt gebruikt. Dit voorkomt ook dat programmeurs een geheel nieuwe taal moeten leren.
Georg Gottlob , een professor aan het Oxford University Computing Laboratory en een expert op het gebied van datalog, zegt dat het logisch is om de taal te gebruiken voor webtoepassingen. Toen Datalog werd uitgevonden, zegt hij, kwam het te vroeg om breed te worden gebruikt vanwege de destijds beperkte verwerkingskracht. Met de verspreiding van gedistribueerd computergebruik, zegt Gottlob, heeft de taal een grote renaissance doorgemaakt.
Dit is waar de toekomst naartoe gaat, zegt Elias Torres, die cloud computing-tools gebruikt bij verschillende startende bedrijven. Enkele jaren geleden kon Torres een voorloper van Bloom gebruiken in een project om een complex protocol voor gedistribueerde systemen te vereenvoudigen. Het was verhelderend, omdat ik me kon concentreren op de gegevens die door het systeem stroomden, zegt hij.
Tegenwoordig, zegt Torres, moet je begrijpen hoe de gegevens moeten worden opgeslagen, georganiseerd en geopend om vooruitgang te boeken. Elke webtoepassing heeft te maken met een steeds groter wordende hoeveelheid gegevens, en Torres gelooft dat programmeurs tools zoals Bloom nuttig zullen vinden.