Bücher online kostenlos Kostenlos Online Lesen
Cloud Computing Anbietervergleich

Cloud Computing Anbietervergleich

Titel: Cloud Computing Anbietervergleich
Autoren: Mario Meir-Huber
Vom Netzwerk:
verwendet.
    Der Datenspeicher
    Wie für den Server ist es auch für den Datenspeicher von zentraler Bedeutung, dass er das Wachstum der Applikation unterstützt. Wichtig ist vor allem, dass es keine Einschränkungen in der Skalierung gibt, daher ist der Datenspeicher der App Engine auf Skalierung und Wachstum ausgelegt. Der Datenspeicher hat kaum Ähnlichkeiten mit bekannten relationalen Datenbanken, er bietet eine Abfragesprache und Transaktionen. Speichereinheiten werden als Entitäten bezeichnet und bestehen aus verschiedenen Feldern, die über Getter und Setter angesprochen werden. Ferner ist der Speicher schemalos, die Struktur der Entitäten wird erst durch die eigene Anwendung definiert. Wichtig ist auch noch zu erwähnen, dass der Zugriff auf den Datenspeicher über das Java Persistence API (JPA) oder den Java Data Objects (JDOs) läuft. Für die Felder sind einige Datentypen notwendig, z. B. Zahlen (Ganzzahlen oder Fließkommazahlen), Text oder Datumswerte sein. Man kann auch Beziehungen zu anderen Entitäten herstellen.
    Die App Engine hat jedoch auch einige Einschränkungen bezüglich der Entitäten. So ist die maximale Größe einer Entität auf 1 MB begrenzt. Für größere Objekte empfiehlt es sich, Blobs zu verwenden. Bei einem PUT oder DELETE können nur 500 Entitäten gesetzt werden, ein GET kann maximal 1 000 Entitäten abfragen, wobei auch hier die Größe der abgefragten Entitäten 1 MB nicht überschreiten darf.
    Eine Entität ist nun in einer eigenen Klasse definiert. Hierfür werden einige andere Klassen importiert, die für die Entitäten notwendig sind. Listing 1.16 zeigt die Import-Statements für die JDOs.
    package com.mmh.cloud.gae.data.entities;

import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.google.appengine.api.datastore.Key;
    Listing 1.16: Import Statements und Packages der Entität
    Damit die Funktionsweise der App Engine leicht verständlich ist, soll ein kleines Beispiel erstellt werrden. Hierfür wird ein Gästebuch mithilfe der JDOs und den Java Server Pages (JSP) entwickelt. Das Beispiel wird sich über das gesamte Kapitel der App Engine ziehen.
    Zu Beginn soll die Entität für den Gästebucheintrag erstellt werden. Hierfür werden einige Felder benötigt. Das Gästebuch soll die E-Mail-Adresse, den Namen des Verfassers, den Text des Eintrags sowie das Datum umfassen. Außerdem ist ein Key zur eindeutigen Identifikation der Entität notwendig. Die ID wird mit der Annotation PrimaryKey versehen und bekommt zusätzlich die Annotation Persistent , damit dieses Feld auch in den Datenspeicher persistiert wird. Der PrimaryKey soll hierfür eine Identity Id Generator Strategy bekommen. Für alle anderen Felder wie Name, E-Mail-Adresse, Text und Datum des Eintrags muss lediglich ein privates Feld erstellt und mit der Annotation Persistent versehen werden. Getter und Setter werden von JDO nicht verwendet, aber von der eigenen Anwendung benötigt. Die Getter und Setter kann man sich in Eclipse automatisiert generieren lassen. Die Klasse für die Entität ist in Listing 1.17 dargestellt.
    @PersistenceCapable(identityType = IdentityType.APPLICATION)
public class GuestbookEntity
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;

@Persistent
private String message;

@Persistent
private String author;

@Persistent
private Date datetime;

@Persistent
private String email;

/**
* @return the message
*/
public String getMessage()
{
return message;
}

/**
* @param message the message to set
*/
public void setMessage(String message)
{
this.message = message;
}

/**
* @return the author
*/
public String getAuthor()
{
return author;
}

/**
* @param author the author to set
*/
public void setAuthor(String author)
{
this.author = author;
}

/**
* @return the datetime
*/
public Date getDatetime()
{
return datetime;
}

/**
* @param datetime the datetime to set
*/
public void setDatetime(Date datetime)
{
this.datetime = datetime;
}

/**
* @return the email
*/
public String getEmail()
{
return email;
}

/**
* @param email the email to set
*/
public void setEmail(String email)
{
this.email = email;
}

/**
* @return the key
*/
public Key getKey()
{
return key;
}

}
    Listing 1.17: Die vollständige Entität für
Vom Netzwerk:

Weitere Kostenlose Bücher