Portobello – Teil2/Was kommt dabei raus …

Nachdem in dem ersten Teil Basisvoraussetzungen beschrieben wurden, die eher dem Smalltalk insgesamt zuzurechnen sind, möchte ich jetzt erst einmal zeigen, was für den Benutzer dabei rauskommt.

Wie bereits beschrieben, sollte das Endsystem auch als Einzelsystem unter Windows nutzbar sein. Daher habe ich ein Installationsscript mit Inno Setup auf Basis der 8.52 Serverruntime geschrieben und kann mit jedem Satz neuer ICs neu durchlaufen werden. Bei der Installation werden die üblichen Icons und Einträge erzeugt:

PortobelloIcons

Der “lokale” Server lauscht nur auf der 127.0.0.1 und der “normale” Server auf der öffentlichen Adresse – kann also auch von anderen Personen im Netz erreicht werden.
Was noch fehlt ist die Portfreischaltung der Firewall – von der ich noch keine Ahnung habe, wie das geht🙂.

Durch die Skripte wird der Smalltalk-Server gestartet, das Seaside-Interface gestartet, die ICs gelesen und diese melden ihre Seasideanwendungen bzw. jQueryMobile Anwendungen an. Das System startet einen Browser mit der korrekten Adresse, was in der Regel zu einen Login-Dialog von Portobello führt (hier mit einem Dialog für regsitrierte Benutzer bzw. einem Guest Account):
LoginWithGuest
JQueryMobile
Portobello benutzt JQueryMobile als Oberfläche – und zwar den aktuellen Port 1.1.x von Squeak. JQueryMobile habe ich ausgewählt, weil alle notwendigen Resourcen bereits enthalten sind und man daher eine Anwendung ohne zusätzlichen Http-Server ohne Probleme laufen lassen kann. Weiterhin kann man damit alle Devices (vor allem die mobilen Geräte) erreichen.
Und wenn man trotzdem eine PC-Browser-Anwendung haben möchte, kann man die durchaus aus einer jQueryMobile Anwendung heraus in einem eigenen Fenster starten (so macht es auch der NAS-Hersteller QNAP).
Login-App
Wie oben bereits gezeigt kann man die “Login-App” konfigurieren, ob sie einen Guest-Account zuläßt, nur registrierte Benutzer erlaubt oder Zugriff nur als guest ermöglicht:
LoginWithoutGuest
Die Login-App ist eine der beiden sogenannten “Basis-Apps”. Diese sind in einer Konfigurationsdatei beim Start zu definieren und ein Entwickler kann diese “Basis-Apps” mit eigenen Versionen austauschen.
Market-App
Eine weitere “Basis-App” ist die “Market-App”, die dem Benutzer die im System gefundenen “Apps” anzeigt. Der Benutzer kann die “Apps” durch einfaches anklicken starten – und wenn die Anwendung beendet wird, kehrt es zur “Market-App” zurück:

Marekt2Portobello
Die “Market-App” ist ebenfalls eine Basis-App und kann daher vom Entwickler überschrieben werden.

Struktur von Apps
Für den Anwender werden die “Apps” (durch den Entwickler – dazu später mehr) in Kategorien eingeordnet: “Spiele”, “Netzwerk”, “Demos” oder (wie im Screenshot) “Portobello System”. Dadurch kann die “Market-App” die Apps strukturiert anbieten.

Für den Entwickler sind die “Apps” (jQueryMobile-Pages) einfache Smalltalkklassen, die in einer Smalltalk-Application definiert sind. Smalltalk-Applications können mehrere “Apps” definieren. Eine oder mehrere Smalltalk-Applications landen später beim Paketieren in einem IC.

Dem Entwickler stehen vordefinierte Protokolle zur Verfügung, um beim Laden eines ICs die neuen “Apps” zu erkennen, diese im Market zu registrieren (damit sie dem Benutzer angezeigt werden können) und damit diese “Apps” ihre eigenen Datenstrukturen eventuell aufbauen können bzw. laden können.

“App”-Beispiel: SystemInfo

Am Anfang habe ich immer “System-Apps” geschrieben, die mir Informationen über das packetierte System gibt. Und was liegt näher, als die Systeminformationen anzuzeigen, die VA dem Entwickler anbietet.
SystemInfo
Zusätzlich enthält diese “App” auch ein Verzeichnis aller geladenen Smalltalk-Applications mit ihrer entsprechenden Versionsnummer:
AppInfos
und
AppInfosA.

Das zu dieser Anwendung zugehörende IC (“unx_sysinfo.ic” bzw. “win_sysinfo.ic”) ist 28 KByte gross.

Das eigentliche Framework (das “Kern-IC” für Portobello – “win_portobello_base.ic”) hat eine Größe von 108 KByte.

Bisher habe ich für Portobello meistens meine Serveranwendungen umgeschrieben – nun laufen sie halt unter Portobello und bieten ein jQueryMobile Interface für die Konfiguration der Serverdienste an.

Aber auch zwei Anwendungen wurden bereits geschrieben, die sich an “Endnutzer” wenden – aber mit jeder Anwendung hat es auch Änderungen am Konzept gegeben.

This entry was posted in Smalltalk and tagged , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s