Cloudbasiertes Dokumentenmanagementsystem
Transcription
Cloudbasiertes Dokumentenmanagementsystem
Bachelorarbeit Cloudbasiertes Dokumentenmanagementsystem Yağmur Şentürk, Harald Victor Schweiger, Yagmur.Sentuerk@student.uibk.ac.at Harald.Schweiger@student.uibk.ac.at 26. März 2016 Betreuer: Mag.iur. MSc MSc. Christian Sillaber Eidesstattliche Erklärung Ich erkläre hiermit an Eides statt durch meine eigenhändige Unterschrift, dass ich die vorliegende Arbeit selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe. Alle Stellen, die wörtlich oder inhaltlich den angegebenen Quellen entnommen wurden, sind als solche kenntlich gemacht. Ich erkläre mich mit der Archivierung der vorliegenden Bachelorarbeit einverstanden. Datum Unterschrift Datum Unterschrift Abstract This bachelor thesis breaks down the properties, functionality and application of the file hosting services: OneDrive, Dropbox, Google Drive and iCloud. A Library, programmed by the authors recaps the different cloud SDK’s into one uniform API and can be testet with a graphical user interface. The whole bachelor thesis was created in collaboration with the company Advokat. Advokat is the most known software for lawyers in Austria and helps to manage jobs like calculating invoices, maintaining accounting, storing contacts and other workings. One Goal of the thesis is to use the library to extend the functionality of Advokat, so that documents, which are stored on the different servers in the lawyers office, can be made accessible from everywhere, with any device and for everyone, as long as the permission is given by the counsel. The second aim is to find the most simple way to edit documents after our Library uploaded them into the cloud. The resulting workflows are written down in this document. Inhaltsverzeichnis 1 Einleitung 1.1 Arbeitsaufteilung für den schriftliche Teil der Arbeit . . . . . . . . . . . . 1.2 Arbeitsaufteilung für die Programmierung . . . . . . . . . . . . . . . . . . 1 3 4 2 Advokat 2.1 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Beitrag zu Advokat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 3 Cloud-Dienste 3.1 OneDrive . . . . . . . 3.1.1 Geschichte . . . 3.1.2 Anwendung . . 3.1.3 Funktionalität 3.2 Dropbox . . . . . . . . 3.2.1 Geschichte . . . 3.2.2 Anwendung . . 3.2.3 Funktionalität 3.3 Google Drive . . . . . 3.3.1 Geschichte . . . 3.3.2 Anwendung . . 3.3.3 Funktionalität 3.4 iCloud . . . . . . . . . 3.4.1 Geschichte . . . 3.4.2 Anwendung . . 3.4.3 Funktionalität 3.5 Kostenübersicht . . . . 3.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Verwendete Technologien 4.1 VB.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 XAML . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Visual Studio, Team Explorer und Bitbucket . . . . . . 4.4 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 ADO.NET . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6 Anmeldung mit OAuth 2.0 . . . . . . . . . . . . . . . . . 4.6.1 Nachteile von Password Authentication Protocol vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 8 9 9 11 11 12 12 13 14 14 15 17 18 18 20 21 22 . . . . . . . 25 25 25 26 26 27 28 28 4.6.2 Funktionsweise 4.7 OneDrive . . . . . . . 4.8 Dropbox . . . . . . . . 4.9 Google Drive . . . . . 4.10 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Prototyp: Cloudverwaltung 5.1 Benutzeroberfläche . . . . . . . . . . . 5.1.1 Dokumentation . . . . . . . . . 5.1.2 Evaluierung . . . . . . . . . . . 5.2 Library . . . . . . . . . . . . . . . . . 5.2.1 Anforderungen an die Software 5.2.2 Dokumentation . . . . . . . . . 5.3 Dynamic Link Library . . . . . . . . . 5.4 Datenbank . . . . . . . . . . . . . . . 5.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 31 31 32 33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 40 43 43 43 45 48 48 50 6 Anwendungsfälle 6.1 Akteure . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Anwendungsfall 1: Außendienst, schreibender Zugriff 6.3 Anwendungsfall 2: Außendienst, lesender Zugriff . . 6.4 Anwendungsfall 3: Außendienst, Bearbeitung offline . 6.5 Anwendungsfall 4: Teilen mit Partnern . . . . . . . . 6.6 Anwendungsfall 5: Kollaboration mit Partnern . . . 6.7 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 51 51 53 55 57 59 65 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Zusammenfassung 67 Literaturverzeichnis 68 A Mobiles Arbeiten mit Dokumenten A.1 Allgemeines . . . . . . . . . . . . . . . . . . . . A.1.1 Änderungsübersicht . . . . . . . . . . . A.2 Aufgabenstellung . . . . . . . . . . . . . . . . . A.2.1 Projektziel . . . . . . . . . . . . . . . . A.2.2 Anwendungsfälle . . . . . . . . . . . . . A.2.3 Aufgabe im Rahmen der Bachelorarbeit A.2.4 Weiterführende Aufgaben . . . . . . . . A.3 Systemcontext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 70 70 70 70 71 72 73 74 1 Einleitung Kennen Sie eigentlich die Webseite, mit der es möglich ist: • seine Lieblings-Musiktitel zu suchen, zu speichern und anzuhören (spotify.com). • Dokumente in verschiedenste Formate zu konvertieren (cloudconvert.com). • komplexe mathematische Formeln auszurechnen und als Graph darstellen zu lassen (wolframalpha.com). Wenn der Leser nicht nur von diesen Webseiten gehört hat, sondern eine davon sogar benützt, dann verwendet er auch die Cloud. Also müssen Programme heutzutage nicht mehr zuerst heruntergeladen, konfiguriert und installiert werden. Stattdessen kann der Nutzer ganz einfach über den Browser gewünschte Programme aufrufen und verwenden. Daher ist es nachvollziehbar, dass sich immer mehr Firmen für eine Cloudlösung entscheiden. Natürlich hat die Cloud-Lösung auch negative Seiten, wenn es um die Sicherheit und die Privatsphäre von den hochgeladenen Daten geht. Sobald Daten oder Dokumente an einen Cloud-Dienst gesendet werden, kann nicht mehr nachvollzogen werden, an welchem Ort die Daten gespeichert werden und wer Zugriff auf diese erhält. In dieser Arbeit werden diese negativen Eigenschaften jedoch aus folgenden Gründen ignoriert: Entweder ist sich der Benutzer diesen Gefahren bewusst und versendet daher nur unbedenkliche Daten in die Cloud oder der Benutzer hat keine Ahnung von Datensicherheit und wird mit der Cloud-Lösung dazu ermutigt, seine Dokumente wenigstens nicht komplett unverschlüsselten über E-Mail zu versenden. Es wird davon ausgegangen, dass Geheimdienste, wie z B die NSA sowohl sämtliche E-Mails abfangen können, als auch die Erlaubnis besitzen, verschlüsselte Cloud-Daten bei terroristischem Verdacht zu entschlüsseln. Jedoch hat das Versenden von E-Mails den zusätzlichen Nachteil, dass so ziemlich jeder, der sich ein wenig genauer mit dem Internet auskennt, die versendete E-Mails abfangen und lesen kann. Die Daten, die an die Cloud gesendet werden, sind hingegen verschlüsselt und halten den meisten Hacker-Angriffen stand. Es ist zusätzlich zu beachten, dass durch das Erforschen der großen Cloud-Dienste, gleichzeitig der Weg für unbekanntere Cloud-Anbieter, wie z. B. Secudos oder Owncloud, geebnet wird. Diese stellen die Möglichkeit zur Verfügung, dass jede Firma einen eigenen Server bekommt, auf dem dann der Cloud-Dienst läuft. Somit ist klar an welchem Ort die Daten der Nutzer gespeichert werden und das Problem der Datensicherheit und Privatsphäre der Nutzer ist gelöst.1 1 Der Anbieter Secudos wird außerhalb der Bachelorarbeit von Yağmur Şentürk erforscht. 1 1 Einleitung Eine dieser Firmen, die ihr Programm mit der Cloud erweitern wollen, nennt sich Advokat (genauer beschrieben in Kapitel 2). Advokat ist ein Anwaltsprogramm, das z. B. Zahlungseingänge, Termine, Kontakte u.v.m. für Anwälte verwaltet. Diese einzelnen Programmfunktionen werden von Advokat auch als (Programm)-Module bezeichnet und erzeugen unter anderem Textdokumente, die z. B. Vereinbarungen zwischen Anwalt und Klienten festhalten. Advokat speichert die Dokumente auf der Datenbank des AdvokatServers, der in jeder Kanzlei separat läuft. Eine Funktion die Advokat jedoch nicht besitzt ist, dass der Anwalt außerhalb der Kanzlei auf seine erstellten Dateien zuzugreifen kann oder Textdokumente Kanzleifremden Personen, wie z. B. der Klient des Anwalts, so online zugänglich macht, dass sowohl der Anwalt, als auch der Klient gleichzeitig daran arbeiten können. Daher ist das Ziel unsere Bachelorarbeit Dokumente so einfach wie möglich außerhalb der Kanzlei dem Anwalt zugänglich zu machen. Um das zu erreichen, liefert Advokat in dem Dokument Mobiles Arbeiten mit Doku” menten“ Vorgaben (auch Anwendungsfälle genannt), wie die Anwälte mit den Dokumenten arbeiten sollen (Anhang A.2.2). Die Anwendungsfälle wurden im Laufe der Arbeit stets aktualisiert und ausgearbeitet. Somit beschreibt die fertige Version (Kapitel 6) genau, welche Schritte in Advokat und im gewählten Cloud-Anbieter durchlaufen werden müssen, um das gewünschte Resultat zu erzielen. Zusätzlich zu den an die Anwendungsfälle abgeleiteten Anforderungen, sollen die unterschiedlichen Cloud-Anbieter auf die in Anhang A.2.3 genannten Merkmale untersucht und evaluiert werden. Genaueres dazu wird in Kapitel 3 beschrieben. Auch wenn manche Eigenschaften der verschiedenen Cloud-Dienste voneinander abweichen, haben sie dennoch die gleiche Hauptaufgabe, das online Speichern, Bearbeiten und Verwalten von Dokumenten. Trotz dieser gemeinsamen Hauptaufgabe, könnten die von den Cloud-Entwicklen zur Verfügung gestellte Programmierschnittstellen2 , nicht unterschiedlicher sein. Um daher den Entwicklern bei Advokat Arbeit abzunehmen, bündeln wir die von den Anwendungsfällen benötigten Funktionen in eine einheitliche Schnittstelle. Da Advokat in Visual Basic .NET oder auch kurz VB.NET programmiert wird, verwendet auch unser Programm diese Programmiersprache, um den Integrationsaufwand so gering wie möglich zu halten. In der Arbeit wird VB.NET und andere von uns verwendeten Technologien in Kapitel 4 beschrieben. Zusätzlich wird in dem Kapitel auch auf die Unterschiede und den daraus resultierenden Problemen der verschiedenen Programmierschnittstellen eingegangen. In dem Kapitel 5 wird der Aufbau und einige Merkmale von dem von uns erbrachte Programm mit den Namen Cloudverwaltung“ beschrieben. Damit unser Programm ” ausführlich getestet und vor der Geschäftsführung von Advokat präsentiert werden konnte, wurden Teile der geplanten grafische Oberfläche implementiert (5.1). Um die Nutzerdaten und die Dokumentzustände in der Cloud ordnungsgemäß zu simulieren, 2 2 Eine Programmierschnittstelle oder auch API (englisch für application programming interface) genannt, ermöglicht es den Entwicklern in ihrem Programm, Funktionen anderer Programme, die nicht von ihm entwickelt wurden, auszuführen. Z. B. kann durch die Programmzeile Service.F iles.Insert(body, Stream, body.M imeT ype).upload von Google Drive ein Dokument in die Cloud hochgeladen werden. 1.1 Arbeitsaufteilung für den schriftliche Teil der Arbeit bedarf es ebenso einer Datenbank (5.4). Der Kern unseres Programms ist jedoch die einheitliche Schnittstelle, die in unserer Arbeit aufgrund der vergleichbaren Eigenschaften auch oft als Adapter oder Wrapper bezeichnet wird [14, Seite 79-87]. Es ist dabei zu beachten, dass ein Großteil des Arbeitsaufwands, die Sicherstellung einer guten Softwarequalität ausmacht. Mehr dazu gibt es in Abschnitt 5.2. Schlussendlich gibt es, wie weiter oben schon beschrieben, eine fertige Version der gewünschten Anwendungsfälle (Kapitel 6), eine Zusammenfassung der Arbeit (Kapitel 7) und im Appendix (Anhang A) Advokat’s Beschreibung über die gewünschten Anforderungen an unsere Arbeit mit den Namen Mobiles Arbeiten mit Dokumenten“. ” 1.1 Arbeitsaufteilung für den schriftliche Teil der Arbeit Die Kapiteln wurden abschnittsweise und separat von den Autoren dieser Arbeit verfasst. Die nachfolgenden Abschnitte wurden von Yağmur Şentürk geschrieben. 3 Cloud-Dienste: 3 Einleitung, 3.1 OneDrive, 3.2 Dropbox, 3.5 Kostenübersicht, 3.6 Zusammenfassung 4 Verwendete Technologien: 4.1 VB.NET, 4.2 XAML, 4.3 Visual Studio, Team Explorer und Bitbucket, 4.4 SQL, 4.5 ADO.NET, 4.7 OneDrive, 4.10 Zusammenfassung 5 Cloudverwaltung: 5.1 Benutzeroberfläche, 5.4 Datenbank, 5.5 Zusammenfassung 6 Anwendungsfälle: 6.7 Zusammenfassung 7 Zusammenfassung Harald Schweiger verfasste die folgenden Abschnitte: 0 Abstract 1 Einleitung 2 Advokat 3 Cloud-Dienste: 3.3 Google Drive, 3.4 iCloud, 4 Verwendete Technologien: 4 Einleitung, 4.6 Anmeldung mit OAuth 2.0, 4.8 Dropbox, 4.9 Google Drive 5 Cloudverwaltung: 5 Einleitung, 5.2 Library, 5.3 Dynamic Link Library Die Anwendungsfälle (Kapitel 6) und die Tabellen 3.2 und 3.3 wurden gemeinsam erarbeitet, wobei die Recherche für Google Drive und iCloud von Harald Schweiger und OneDrive und Dropbox von Yağmur Şentürk erfolgte. 3 1 Einleitung 1.2 Arbeitsaufteilung für die Programmierung Yağmur Şentürk programmierte die Testanwendung, die überwiegend aus der graphischen Oberfläche (Abschnitt 5.1) und der Datenbank (Abschnitt 5.4) besteht und implementierte in der Library die einheitliche Schnittstelle für den Dienst OneDrive (OneDriveService). Die Anbindung für den Dienst Dropbox, die durch die Verwendung der DropNET -API programmiert wurde, wurde ebenso von Yağmur Şentürk erstellt. Jedoch musste dieser Teil im Laufe der Implementierung ersetzt werden. Die anderen zwei Anbindungen (DropboxService und GoogleDriveService) und die anderen Klassen, die zu der Library gehören, wurden von Harald Schweiger programmiert. Bei der Anknüpfung der Library im Prototyp half Harald Schweiger genauso mit. Es ist zu beachten, dass beide Programmierer stets zusammen gearbeitet haben, sobald Probleme während der Programmierung aufgetreten sind. 4 2 Advokat Advokat ist nicht nur ein alter, aus dem lateinischen stammender (advocatus = der Herbeigerufene) und deutschsprachiger Ausdruck für Anwälte1 , sondern bezeichnet auch eine Rechtsanwaltssoftware, die in Österreich vertrieben wird. Letztere steht für die Abkürzung Automatisierte Daten Verarbeitung und Organisation für Kanzleien der AnwaltschafT. Mit mehr als 1700 Rechtsanwaltskanzleien gehört Advokat zu den führenden Anbietern für Rechtsanwaltssoftware in Österreich. Im Vergleich, in Österreich gibt es 4900 eingetragene Rechtsanwälte.2 Der Grund für die Marktführung liegt unter anderem daran, dass die Anfänge der Rechtsanwaltssoftware bis in die 70er Jahre zurück gehen. Somit war das damalige EDV-Programm, das erste seiner Art für österreichische Anwälte.3 2.1 Funktionen Advokat versucht die täglichen Abläufe der Anwälte zu automatisieren und zu verbessern. Somit können Akten, Personen und Termine digitalisiert und mittels des integrierten Suchassistenten schnell gefunden werden. Dabei bedient sich das Programm unter anderem der Volltextsuche von Sharepoint. SharePoint ist ein Webseite, die von Microsoft beim Verwenden von Office 365 zur Verfügung gestellt wird. Die integrierten Funktionen werden von Advokat den Bedürfnisse des Anwalt angepasst und in ihr Programm eingebaut. Eine andere Funktion von Advokat ist die Verwaltung von Honorarnoten und anderen Abrechnungen. Zum Beispiel kann das Modul Registrierkasse“, die Registrierkassen” pflicht des Anwalts digital umsetzten. Zusätzlich besitzt das Programm automatische Buchungsvorschläge für die Buchhaltung. Advokat versucht auch das Erstellen und Arbeiten von/mit Dokumenten zu vereinfachen. Dabei helfen die in die Software integrierten Dokumentvorlagen für Microsoft Word und das PDF Modul, mit welchem PDFs erstellt und exportiert werden können. Weitere Funktionen können unter der folgenden URL4 eingesehen werden. 2.2 Beitrag zu Advokat Bis jetzt wurde Advokats Definition und Funktionalität erläutert. Das Arbeiten mit der Rechtsanwaltssoftware besitzt jedoch auch Einschränkungen, die durch unsere Library 1 Dudensuche für Advokat: http://www.duden.de/rechtschreibung/Advokat, 20. Februar 2016 Portal zur Rechtsanwaltsuche Österreich: http://www.rechtsanwaltaustria.at/, 20. Februar 2016 3 Über Advokat: http://www.advokat.at/Ueber-Advokat/Wir-Ueber-Uns.aspx, 20. Februar 2016 4 Advokats Module: http://www.advokat.at/Rechtsanwaltssoftware/Module.aspx, 21. Februar 2016 2 5 2 Advokat beseitigt werden sollen. Grundsätzlich ist Advokat ein Programm, das auf jedem Computer der Kanzlei läuft. Die erarbeiteten Daten, wie z. B Textdokumente, Termine und Kontakte, werden jedoch auf einen Server der in der Kanzlei steht synchronisiert. Das ermöglicht es dem Anwalt und dessen Sekretärin stets die aktuelle Version der Datei von jedem Computer aus in der Kanzlei abrufen zu können. Daher ist der Dienst ein in sich abgeschlossenes System, auf welches von außen nur mit den zu Verfügung gestellten Schnittstellen zugegriffen werden kann. Momentan gibt es zwei solcher Schnittstellen, die einen Zugriff auf die internen Daten gewährleisten. Die Erste nennt sich ADVOKAT Mobil“, die es ermöglicht gespeicherte Akten und ” Kontakte einzusehen und Leistungen, die vom Rechtsanwalt außerhalb erbracht wurden, mit dem jeweiligen Akt zu verbinden und in die Datenbank der Kanzlei zu speichern. Möchte man hingegen gespeicherte Dokumente (Office Word und Andere) einsehen, so muss momentan auf einen VNC-Dienst5 zurückgegriffen werden. Darum soll es mittels unserer Library möglich sein, Dokumente in die Cloud zu speichern und Anderen6 zur Verfügung zu stellen. Das Hochladen von Dokumenten in die Cloud soll fürs Erste nur über das Advokat-Programm in der Kanzlei möglich sein. Für diese und die nachfolgenden Aktionen hat nur der Besitzer des Akts/Dokuments, also der Rechtsanwalt, oder dessen Sekretärin die jeweiligen Berechtigungen. Später soll dies auch mit dem Modul ADVOKAT Mobil“ bewerkstelligt werden. ” Um dem Anwalt den Einstieg in die Welt der Onlinedienste so leicht wie möglich zu machen, soll er die Möglichkeit haben seinen bevorzugten Clouddienst zu wählen. Damit die Entwickler hingegen bei der Anbindung der Clouddienste an Advokat Zeit einsparen können, soll unsere Library die wichtigsten Funktionalitäten der verschiedenen Clouddienste bündeln und als eine einheitliche Schnittstelle vereinen. Wie in Abbildung 2.1 ersichtlich, werden alle Daten in die internen Advokat Datenbanken (Advokat DBs) der jeweiligen Kanzelei gespeichert. Wird ein Dokument nun in die Cloud hochgeladen, wird das Dokument intern zur Bearbeitung gesperrt, um Änderungen, die in der Onlineversion des Dokuments stattfinden, später leichter in den internen Advokat Datenbestand zu übernehmen. Um das korrekte Funktionieren unserer Library zu gewährleisten, müssen einige Daten, wie zum Beispiel die Anmeldedaten des Benutzers und die Identifikationszeichenfolge, Berechtigungen und Speicherungsort des Cloud-Dokuments, in der Advokat Datenbanken hinterlegt werden. Ist das Dokument erst einmal in der Cloud, kann es mittels verschiedene Anwendungen des Cloud- oder Drittanbieters bearbeitet werden. Dabei kann es zu mehreren Varianten und Verdopplungen der Datei kommen. Daher bietet Advokat beim Zurückholen in den Advokat Datenbestand ein Werkzeug an mit dem die Änderungen an der Datei verglichen, übernommen und verworfen werden können. 5 Steht für Virtual Network Computing und überträgt den Bildschirm des angesteuerten PCs auf den momentan verwendeten Computer. 6 Mit Anderen sind zum Beispiel die Klienten des Anwalts gemeint. Also all diejenigen die keinen Zugang zum Advokat Dienst besitzen. 6 2.2 Beitrag zu Advokat Abbildung 2.1: Softwareentwurf für Advokat mit Cloudanbindung 7 3 Cloud-Dienste In diesem Kapitel werden die Cloud-Dienste eingeführt und deren Eigenschaften vorgestellt. Cloud-Dienste ermöglichen dem Nutzer das Speichern von Daten in einem zentralen Datenspeicher über das Internet, dies wird Filehosting-Dienst genannt. Das heißt also, dass zum Beispiel Dokumente, Bilder, etc. auf die sogenannte Cloud hochgeladen werden können und dann ist es möglich von überall darauf zuzugreifen. Solche Dienste werden von verschiedenen Anbietern bereitgestellt. Die bekanntesten und relevanten Dienste für diese Bachelorarbeit sind iCloud von Apple, OneDrive von Microsoft, Dropbox von Dropbox Inc. und Google Drive von Google. Diese Dienste werden in die Lupe genommen, da sie am öftesten von Rechtsanwälten im privaten Leben zum Beispiel durch Handys verwendet werden. Der Cloud-Dienst OneDrive wird in Abschnitt 3.1 und Dropbox in Abschnitt 3.2 angesprochen. Die Dienste iCloud und Google Drive werden in Abschnitt 3.3 und 3.4 beschrieben. 3.1 OneDrive OneDrive ist ein Filehosting-Dienst, der von Microsoft angeboten wird. Neben dem Cloud-Dienst werden aber auch verschiedene Online-Dienste von Microsoft zur Verfügung gestellt. Diese sind zum Beispiel Word, Excel, Powerpoint, Outlook, also die Office-Familie, aber auch ein Online-Kalender wird bereitgestellt. Als OneDrive Nutzer hat man also die Möglichkeit mehrere Dienste online zu verwenden. Zusätzlich gibt es die Chance, sich ein OneDrive for Business Konto zu erstellen. Für diese Nutzer werden mehrere Dienste als für normale“ OneDrive Nutzer angeboten. ” 3.1.1 Geschichte Bevor OneDrive in 2007 auf den Markt gebracht wurde, veröffentlichte Microsoft eine limitierte Betaversion für einige Tester in den Vereinigten Staaten unter den Namen Windows Live Folders. (vgl. [22]) Am 1. August 2007 wurde Windows Live Folders einer breiteren Zielgruppe veröffentlicht und am 8. August 2007 zu Windows Live SkyDrive umbenannt. Windows Live SkyDrive stand den Nutzern in Großbritannien und in Indien zur Verfügung. (vgl. [2]) In 2008 war SkyDrive in 38 Ländern verfügbar. (vgl. [5]) Diese Zahl erhöhte sich später auf 62. (vgl. [4]) In 2010 wurde Office Web Apps, jetzt mit dem Namen Office Online 1 , zu SkyDrive hinzugefügt. Somit können Office-Dokumente, wie zum Beispiel ein Word-Dokument, online bearbeitet werden. (vgl. [6]) Später in 1 8 Office Online: https://office.live.com/start/default.aspx, 13. August 2015 3.1 OneDrive 2013 wurde Microsoft von dem britischen Fernsehsender BSkyB wegen der Verwendung von dem Namen Sky“ verklagt. (vgl. [10]) Daher kündigte Microsoft in 2014 an, dass ” SkyDrive zu OneDrive umbenannt wurde. (vgl. [18]) 3.1.2 Anwendung Microsoft bietet drei verschiedene OneDrive Anwendungen2 an, nämlich die Nutzung von OneDrive als App, als einen OneDrive-Ordner oder die Verwendung von OneDrive über einen Webbrowser. Mit der OneDrive-App besteht ein mobiler Zugriff auf die Dateien, aber auch die Möglichkeit diese Dateien zu bearbeiten oder auch mit anderen zu teilen. Dies wird für Windows Phone, Android und iOS unterstützt. Für das Bearbeiten von OfficeDokumenten wird zusätzlich eine Office-App benötigt, die mittlerweile für alle mobilen Betriebsystemen verfügbar ist. Neben dieser App-Anwendung gibt es OneDrive auch für den Computer als einen sogenannten Sync-Folder. Die Verwendung dieses Ordners ist recht einfach, da nur ein OneDrive-Ordner auf dem Computer angebunden wird. Somit kann offline auf die Daten zugegriffen werden, die sich auf dem Cloudspeicher befinden. Die Veränderungen von Dokumenten oder das Hinzufügen bzw. Löschen von Dateien, werden auf der Cloud automatisch synchronisiert, sobald ein Online-Kontakt vorhanden ist. Das heißt, dass die Dokumente auf die neueste Version aktualisiert, die neuen Dateien hinzugefügt und die gelöschten Dateien aus dem Cloudspeicher entfernt werden. Dieser OneDrive-Ordner kann als gewöhnlicher Ordner benutzt werden, das heißt dass Dateien ganz einfach in diesen Ordner geschoben werden. Der OneDrive-Ordner hat nur einen Unterschied zu normalen Ordnern, nämlich den, dass die Dateien auf der Cloud synchronisiert werden. OneDrive wird für die Betriebssysteme Windows und Mac OS unterstützt. Daneben sind das Zugreifen auf die Dateien, das Teilen, Erstellen und Bearbeiten von Dateien, über die Webbrowser Firefox, Safari oder Internet Explorer auch möglich. Für OneDrive Nutzer, unabhängig von der Verwendung eines Privat- oder Businesskontos, werden diesen neben der Weboberfläche eine Anzahl von Web-Apps, also online Anwendungen, angeboten. Diese zur Verfügung gestellten Web-Apps werden in Abbildung ?? dargestellt. 3.1.3 Funktionalität Suchen und Sortieren Das Suchen und Sortieren wird sowohl im Webrowser als auch im Sync-Folder und in der App zur Verfügung gestellt. Da ein Sync-Folder wie ein Standard-Ordner auf dem PC läuft, wird diese Funktion wie gewohnt ausgeführt. Das heißt, dass nach Namen, Änderungsdatum, Typ und Größe sortieren und nach Namen oder textuellen Inhalt gesucht werden kann. Im Webbrowser hingegen wird nur das Suchen nach Dokumentennamen 2 OneDrive Anwendungen: https://onedrive.live.com/about/de-de/support, 6. August 2015 9 3 Cloud-Dienste angeboten. Im OneDrive for Business ist es auch möglich nach Wörtern, die im Dokument vorkommen, aber auch nach Metadaten, wie zum Beispiel Autoren, Dokumente zu ermitteln. Das Sortieren in der Weboberfläche gelingt nach dem Namen, Änderungsdatum und Größe. In OneDrive für Privatpersonen ist es möglich, eine Sortierreihenfolge zu speichern. Wie im Webbrowser gelten diese Eigenschaften auch für die App. Datenfreigabe Eine Freigabe kann für eine bestimmte Person erfolgen, wobei die Zugriffseinstellungen reguliert werden können. Somit wird einer Person entweder die Ansicht auf die Datei oder auch das Bearbeiten des Dokuments zugelassen. Außerdem gibt es die zusätzliche Einstellung, ob die Person mit dem zugeteilten Link ein Account besitzen muss oder ob sie die Datei ohne einer Anmeldung bearbeiten bzw. sich ansehen darf. Des Weiteren können angemeldete Personen den geteilten Link wiederum weiterleiten und schließlich anderen Personen den Zugriff erlauben, selbst wenn das vom ursprünglichen Autor nicht erwünscht ist. Darüber hinaus wird in OneDrive for Business zusätzlich das Folgen von gewünschten Dokumenten erlaubt, um dementsprechend sogenannte News über Änderungen zu erhalten. Als eine Alternative kann auch ein Link erstellt, für diesen die Rechte wieder angegeben werden müssen, und den gewünschten Personen weitergegeben werden. Diese Personen müssen auch kein Account für diesen Cloud-Dienst besitzen. Diese erwähnte Funktion wird nur im Webbrowser und in der App unterstützt. Versionsverwaltung und Aktivitäten Sofern die alte Version des Schreibens wiederhergestellt werden soll, ist dies mit der angebotenen Versionskontrolle im Webbrowser durchführbar. Mit dieser Kontrolle können die vorherigen Versionen anzeigt werden, somit steht die Ansicht, was wann und von wem geändert wurde, zur Verfügung. Man beachte, dass die erste Version nach dem erstmaligen Hochladen des Dokuments entsteht, dies bedeutet, dass bestehende Versionen eines Dokumentes vor dem Hochladen nicht beibehalten werden. Allerdings bleiben alle Eigenschaften von Dokumenten erhalten. Office-Online und Office bieten für Online-Dokumente das Live-Folgen von Änderungen. Somit ist es möglich, bei einer Internetverbindung, bei geteilten Dokumenten live zu sehen, wer was wohin schreibt. Löschen und Wiederherstellen Als zuletzt wird das Löschen und auch das Wiederherstellen von Dateien in allen Anwendungen angeboten. Die gelöschten Dateien gelangen im Papierkorb und von dort aus ist es möglich diese Dateien wiederherzustellen. Falls diese endgültig aus der Cloud entfernt sollen, wird das Dokument im Webbrowser aus dem Papierkorb gelöscht. In OneDrive for Business landet das Dokument nach diesem Schritt in den sogenannten endgültigen Papierkorb“ und kann von dort aus immer noch wiederhergestellt werden. ” Nach einem Löschen in diesem Bereich, wird angegeben, wie in Abbildung 3.1 abgebildet, dass das Dokument in 93 Tagen endgültig gelöscht wird. 10 3.2 Dropbox Abbildung 3.1: Benachrichtigung vor dem endgültigen Löschen 3.2 Dropbox Dropbox ist ein Filehosting-Dienst, der von Dropbox Inc. entwickelt wurde. Die Hauptfunktionalität von Dropbox ist es wirklich nur Dateien auf der Cloud zu verwalten. Dropbox bietet also keine zusätzlichen Online-Dienste, wie bei OneDrive, an. Trotzdem wird die Online-Verwaltung mit den verschiedenen Dokumenten gut abgewickelt. Seit April 2015 ist es in Dropbox auch möglich, Word-Dokumente online zu bearbeiten. Dies ist ein großer Vorteil für dieses Projekt, weil die Rechtsanwälte hauptsächlich mit Word-Dokumenten arbeiten. 3.2.1 Geschichte Die Idee von Dropbox entstand im Dezember 2006, als der Erfinder Drew Houston seinen USB-Stick vergaß. Somit konnte er während einer vier-stündigen Fahrt an seinem Code nicht weiterarbeiten. Durch diesen Vorfall fing er an eine Technologie für die Datensynchronisation über das Web zu entwickeln. Im Februar 2007 veröffentlichte Houston seine Idee an Paul Graham, dem Gründer des Gründerzentrums Y Combinator 3 . Für die Förderung von Dropbox brauchte Houston einen Mitbegründer und fand somit Arash Ferdowsi. Monate später stellten die Zwei Dropbox bei einer Veranstalltung von Y Combinator vor und wurden danach von der Risikokapital-Beteiligungsgesellschaft Sequoia Capital 4 unterstützt. In 2008 hatte Dropbox neun Angestellte und 200.000 Nutzer. Houston und Ferdowsi machten Kunden auf Dropbox aufmerksam, indem sie ihnen 250 MB kostenlosen Speicher anboten. Mitte 2010 waren fünf weitere Mitarbeiter angestellt und die Nutzeranzahl verzehnfachte sich. Folglich trafen Ferdowsi und Houston eine Abmachung mit dem Mobiltelefonhersteller HTC, um Dropbox auf diesen Handys als voreingestellten Cloudspeicher zu verwenden. (vgl. [7, Seite 83-92]) Im November 2014 wurde Office365 für mobile Verwendungen integriert, somit konnten Office-Dokumente auf Dropbox mit den Office-Apps bearbeitet werden. (vgl. [11]) Seit April 2015 steht Office Online auch für Dropbox zur Verfügung5 . 3 Y Combinator: http://www.ycombinator.com, 13. August 2015 Sequoia Capital: https://www.sequoiacap.com, 19. August 2015 5 vgl. Dropbox Office Online Integration: https://blogs.dropbox.com/dropbox/2015/04/ dropbox-and-office-online/, 13. August 2015 4 11 3 Cloud-Dienste 3.2.2 Anwendung Dropbox wird in verschiedensten Anwendungen angeboten. Falls ein Offline-Arbeit mit Dropbox gewünscht ist, dann wird ein Sync-Folder angeboten, der genauso wie einen Standard-Ordner auf dem Pc verwendet werden kann. Das heißt, eine Datei kann wie gewohnt geöffnet und sie bearbeitet werden. Alle Änderungen werden bei einem OnlineKontakt sofort synchronisiert und der Sync-Folder wird geupdatet. Somit sind die letzten Modifikationen auch bei allen anderen Geräten sichtbar bzw. in Dropbox gespeichert und kann jederzeit darauf zugegriffen werden. Falls die Weboberfläche bevorzugt wird, so wird auch Dropbox über den Webbrowser zur Verfügung gestellt. Dort sind auch alle Funktionalitäten, die nicht im Sync-Folder verfügbar sind, zu finden. Dazu gehören Funktionen wie das Teilen, Wiederherstellen, die in Abschnitt 3.2.3 erläutert werden. Da der Zugriff auf die Weboberfläche online erfolgen muss, werden alle Modifikationen akut gespeichert. Da Dropbox seit April 2015 Office Online unterstützt, ist es auch möglich Word-Dokumente über die Weboberfläche zu verwalten. Für diejenigen, die Dropbox mobil verwenden wollen, gibt es die mobile Anwendung, nämlich die App. Auch in der App wird das Offline-Arbeiten seit September 20156 unterstützt. Somit können Dokumente, auch bei keiner Internetverbindung, offline bearbeitet oder angesehen werden. Neben dieser Möglichkeit, stellt die App die Funktionen, wie Suchen, Sortieren und Teilen, zur Verfügung. 3.2.3 Funktionalität Suchen und Sortieren Diese Funktion wird in allen drei Anwendungsbereichen angeboten. Das Suchen erfolgt im Webbrowser und in der App nach dem Dokumentnamen. In der Weboberfläche ist es möglich nach Name, Änderungsdatum, Art, Erweiterung, Größe und Freigabe zu sortieren. In der App hingegen geschieht dies nur nach Name und Änderungsdatum. Im Sync-Folder kann nach Namen, Änderungsdatum, Typ und Größe sortiert werden und das Suchen erfolgt nach Name oder nach einem Text, der im Dokument vorkommt. Datenfreigabe Für Dateien wird nur eine lesende Freigabe angeboten. Falls jemandem ein schreibender Zugriff gewährt werden soll, muss ein Ordner geteilt werden. Denn für Ordner können Personen eingeladen werden, die dann alles in diesem Ordner bearbeiten können. Zusätzlich ist es auch erlaubt einen Link für den Ordner zu erstellen, dabei sind Personen nur berechtigt, den Ordner sich anzusehen. Die Dropbox Pro Nutzer jedoch können für die lesende Dateifreigabe und den Ordner-Link zusätlich ein Kennwort setzen oder eine Gültigkeitsdauer angeben. Weiteres können diese Nutzer beim Einladen der Personen für einen Ordner auswählen, ob diese einen Zugriff als Betrachter oder Bearbeiter darauf haben sollen. Diese Funktion wird nur im Webbrowser und in der App unterstützt. 6 Dropbox 4.0 für iOS: Information aus App Store Update. 12 3.3 Google Drive Versionsverwaltung und Aktivitäten Die Versionsverwaltung wird im Webbrowser und im Sync-Folder unterstützt. Im SyncFolder ist es möglich durch einen rechten Mausklick auf die Datei, sich die älteren Versionen anzusehen. Dabei wird auf die Webseite verlinkt und somit öffnet sich dieselbe Seite, wie wenn die Versionsverwaltung über die Weboberfläche geöffnet würde. Löschen und Wiederherstellen Nach dem Löschen von einer Datei in einer der drei Anwendungen, landet die Datei nach Gelöschte Dateien“. Dieser Ordner kann nur in der Weboberfläche geöffnet werden. Im ” Webbrowser ist es aber auch möglich, die gelöschten Dateien sich gemeinsam mit den vorhandenen Dokumenten anzusehen. In Abbildung 3.2 wird diese Möglichkeit dargestellt, diese Ansicht wird erstellt, sobald auf das Papierkorb-Zeichen rechts oben neben der Suchleiste geklickt wird. Die gelöschten Dateien werden somit in Grau und mit der Information gelöscht“ angezeigt. ” Diese Dateien, die gelöscht wurden, werden bis zu 30 Tagen in diesem Ordner gespeichert und danach von Dropbox endgültig gelöscht. Falls eine Datei wiederherzustellen ist, ist sie in diesem Ordner zu finden und kann die Datei wiederherstellen. Für Dropbox Pro Nutzer ist es möglich Dateien bis zu einem Jahr in diesem Ordner zu speichern. Abbildung 3.2: Ansicht von gelöschten Dateien 3.3 Google Drive In diesem Kapitel wird der von Google angebotene Cloud-Dienst beschrieben. Google Drive bietet allerdings nicht nur Speicherplatz an, um Dateien in verschiedenen Formaten online hochzuladen, sondern stellt auch Programme zur Bearbeitung von Dokumenten über den Browser und als mobile Anwendung frei zur Verfügung. Zusätzlich gibt es auch einen online App-Store mit den Anwendungen von Drittanbietern benützt werden können. Wem das noch nicht reicht kann auch noch auf den kostenpflichtigen Dienst Google Apps for 13 3 Cloud-Dienste Work zurückgreifen, mit welchem erweiterte kostenpflichtige Dienste eingerichtet werden können.7 3.3.1 Geschichte Google Drive ist der weiter entwickelte Dienst, der aus der Kombination der Programme Writely und Google Spreadsheets hervorgeht. Writely wurde von Upstartle 2005 entwickelt und ist ein Browser basiertes Textverarbeitungs-Programm [20]. Es kann daher mit einer auf die Kernfunktionen reduzierten Onlineversion des damals weiter verbreiteten Microsoft’s Word verglichen werden. 2006 wurde Writely im Namen von Google weiterentwickelt [1]. Spreadsheets ist sowohl das englische Wort für Tabellenkalkulation, als auch Google’s Programm zum online bearbeiten von Tabellen. Spreadsheets wurde von einer kleinen Firma namens 2Web unter der Leitung von Google entwickelt [1]. Im September 2007 war es bereits möglich mit Docs & Spreadsheets, sprich die Kombination aus Writely und Spreadsheets, mit bis zu 50 Nutzern ein Dokument gleichzeitig zu bearbeiten. Während Textdokumente erst nach erneutem Laden der Browser-Seite aktualisiert wurden, konnten Änderungen anderer Nutzer an Tabellen in Echtzeit nachverfolgt werden. Der Onlinespeicher war damals auf 5000 Textdokumente mit einer jeweiligen maximalen Größe von 500 KB Speicherplatz und 200 Tabellendokumente mit jeweils maximal einem MB Speicherplatz limitiert [19]. Später konnten auch andere Dokument-Typen bearbeitet werden. Dazu gehören Präsentations- und Zeichenprogramme, wie auch Werkzeuge um Fragebögen zu erstellen oder Dateien in ein anderes Format zu konvertieren (Siehe Abbildung ??). Diese Programmzusammenstellung ist heute unter den Namen Google Docs, Sheets, Slides und Forms bekannt.[9] Der Cloud-Dienst, der gegenwärtig für die Speicherung aller Dateien zuständig ist, lautet Google Drive und startete seinen Dienst am 24. April 20128 . 3.3.2 Anwendung Google bietet eine Menge Optionen und Programme, um mit Drive auf verschiedenen Geräten effizient arbeiten zu können. Wenn keine Programme installiert werden sollen, ist es die beste Lösung den Browser zu verwenden. Am besten verwendet der Nutzer dabei den Chrome Browser. Da Chrome auch von Google entwickelt wird, besitzt die Weboberfläche von Google Drive, im Gegensatz zu den anderen Browsern, die zusätzliche Funktion Dateien offline im Browser zu speichern.9 7 Google Apps for Work: http://cloudwuerdig.com/for-work-google-apps.php, 21. März 2016 Veröffentlichung von Google Drive: http://googleblog.blogspot.co.at/2012/04/ introducing-google-drive-yes-really.html, 16. März 2016 9 Diese Option findet der Chrome Nutzer unter: https://drive.google.com/drive/my-drive → Ein” stellungen“→ Allgemein“→ Dateien aus Google Docs, Google Tabellen, Google Präsentationen und ” ” Google Zeichnungen mit diesem Computer synchronisieren, um sie auch offline bearbeiten zu können“, 8. März 2016 8 14 3.3 Google Drive Falls der Nutzer auf die Browser Variante verzichten möchte, kann er sich Drive als Programm für Windows oder OS X herunterladen. Hierbei wird auf dem Computer, wie auch bei OneDrive, ein SyncFolder installiert, in welchem die Dokumente synchronisiert werden. Wird also die Datei mit z. B. Word in diesem Ordner bearbeitet, so ändert sich auch die Onlineversion des Dokuments dementsprechend. Zusätzlich können auch Dateien in die Cloud hochgeladen werden, indem das hochzuladende gewünschte Dokument in den SyncFolder hineinkopiert wird. Es ist zusätzlich zu beachten, dass es für Linux momentan kein SyncFolder-Programm gibt und daher bei diesem Betriebssystem auf die Webseite zurückgegriffen werden muss.10 Um Drive mobil mit Smartphones und Tablets nutzen zu können muss die Drive App installiert sein. Beim Versuch über den Browser mit einem mobilen Gerät zuzugreifen, wird der Nutzer zur Download-Seite der App weitergeleitet. Zu den bisher vorgestellten Varianten, um Dokumente online zu Bearbeiten, gibt es noch die Möglichkeit sich ein Plug-in für Microsoft Word unter Windows oder OS X zu installieren. Durch dieses Plugin können, wie auch bei OneDrive, direkt über das Word-Menü die Online-Dokumente bearbeitet werden.11 3.3.3 Funktionalität Suchen und Sortieren Sowohl als SyncFolder als auch im Browser und als mobile App kann nach Dokumenten gesucht und sortiert werden. Da ein SyncFolder ein Ordner ist, der von dem am Computer laufenden Cloud-Dienst-Prozess in zeitlichen Abständen im Bezug auf die beinhalteten Dateien aktualisiert wird, stellt das Betriebssystem das Suchen und Sortieren bereits zur Verfügung. Somit ist es möglich nach Namen, Änderungsdatum, Typ, Größe und anderen Kriterien einer Datei zu sortieren. Beim Browser und bei den mobilen Apps unterscheiden sich die Sortierfunktionen hingegen. Hier kann nach Namen“, Zuletzt geändert“, Zuletzt von mir geändert“und ” ” ” Zuletzt von mir geöffnet“ sortiert werden.12 Das hat besondere Vorteile, sobald mehrere ” Personen an einem Dokument arbeiten. Besonders die Suchfunktionen zahlen sich im Browser und bei den mobilen Geräten aus. Hierbei kann nach Dateinamen, Inhalt der Datei und zusätzlichen Metadaten gesucht werden. Das Suchen nach Inhalten beschränkt sich hierbei nicht nur auf Textdokumente, sondern funktioniert auch für Bilder, in denen Wörter oder bekannte Sehenswürdigkeiten abgebildet sind.13 10 Beim Aufrufen der Webseite https://www.google.com/intl/de_at/drive/download/ mit einem Linux-Computer kommt momentan die Nachricht: There is no Drive app for Linux at this time. ” Please use Drive on the web and on your mobile devices.“, 3. März 2016 11 Drive Plug-in für Microsoft Office: https://support.google.com/a/answer/6165960?hl=de, 16. März 2016 12 Dateien sortieren, https://support.google.com/drive/answer/2375177?hl=de, 16. März 2016 13 Nach Dateien im Browser suchen: https://support.google.com/docs/answer/2375114?hl=de, 16. März 2016 15 3 Cloud-Dienste Datenfreigabe Mit Drive können Dateien auf verschiedene Art und Weisen geteilt werden. Während Ordner die Rechte Darf ansehen“, Darf bearbeiten“ und Eigentümer“ besitzen können, ” ” ” gibt es für Dateien noch die vierte Option Darf kommentieren“. In Tabelle 3.1 wird ” dargestellt, welche Funktionalitäten ein Nutzer mit jeweiligen Rechten besitzt.14 Darf Darf Darf ansehen kommentieren bearbeiten Dateien und Ordner ansehen 3 3 3 3 Dateien auf ein anderes Gerät herunterladen oder damit synchronisieren 3 3 3 3 Dateien zum Speichern auf Google Drive kopieren 3 3 3 3 3 3 3 Dokumente, Tabellen, Präsentationen und Zeichnungen bearbeiten 3 3 Dateien für andere freigeben oder Freigabe aufheben 3 3 Dateien einem Ordner hinzufügen oder aus einem Ordner entfernen 3 3 Dateiversionen hochladen und löschen 3 3 In Dateien Kommentare hinterlassen und Änderungsvorschläge unterbreiten Eigentümer Dateien und Ordner löschen 3 Eigentumsrechte an Dateien oder Ordnern auf andere Nutzer übertragen 3 Tabelle 3.1: Berechtigungstabelle für Google Drive Die jeweiligen Rechte können an ausgewählte Nutzer mit der Option Bestimmte ” Personen“vergeben werden. Diese Nutzer müssen daher ein Google-Konto verwenden, um sich authentifizieren zu können. Weiteres können die Dokumente auch an alle freigegeben werden, die den Link zu dem Dokument oder Ordner besitzen. Dieser Link kann mit der Funktion Personen ” einladen“per E-Mail weiter gesendet werden. Das bringt den Vorteil, dass auch andere Nutzer, die kein Google-Konto haben, auf die Dokumente zugreifen können. Gleichzeitig hat diese Methode, den Nachteil, dass auch Fremde Zugriff auf die Dateien haben können, falls der Link weiter verbreitet wird. 14 Freigabeeinstellungen ändern, https://support.google.com/drive/answer/2494886?hl=de, 16. März 2016 16 3.4 iCloud Die letzte Freigabeoption lautet Öffentlich im Web“, und beschreibt die Möglich” keit durch eine Suchanfrage im Internet, die Datei zu finden und je nach eingestellter Berechtigung lesen, herunterzuladen oder sogar bearbeiten zu können. Zuletzt gibt es unter Eigentümereinstellungen noch die Möglichkeit, die Rechte feinzujustieren. Dabei gibt es die selbsterklärenden Funktionen: Bearbeiter dürfen weder ” die Zugriffsberechtigung ändern, noch neue Personen hinzufügen“und Option zum Her” unterladen, Drucken und Kopieren für Kommentatoren und Betrachter deaktivieren“. Letzteres gilt nicht für Ordner und Nutzer mit Bearbeitungsrechten. Versionsverwaltung und Aktivitäten Das Besondere an Google Drive beim Verwenden der Weboberfläche ist, dass Zwischenspeicherungen und Änderungen an den Dokumenten, genau verfolgt werden können.15 Bei Bedarf kann auch zwischen den verschiedenen Versionen eines Dokuments gewechselt werden.16 Eine andere Möglichkeit mit Google Docs das Dokument gemeinsam zu bearbeiten, ist der Bearbeitungsmodus Vorschlagen“. Dabei kann ein Nutzer, mit dem das Dokument ” geteilt wurden, einstellen, dass alle Änderungen Vorschläge sind, die später vom Besitzer angenommen oder abgelehnt werden können. Zusätzlich zur Versionsverwaltung gibt es bei der Weboberfläche und bei den mobilen Apps eine Liste an Aktivitäten. Dort wird informiert, welche Dokumente zuletzt verändert wurden. Löschen und Wiederherstellen Möchte der Nutzer ein Dokument löschen, so kann er es einfach in den Papierkorb von Drive schieben. Dort bleibt die Datei so lange gespeichert, bis der Papierkorb geleert wird. Es ist zu beachten, dass andere Nutzer, mit denen die Datei geteilt wurde, solange auf das Dokument Zugriff besitzen bis die Freigabe aufgehoben oder der Papierkorb geleert wurde. Nach dem Leeren des Papierkorbs, kann nur eventuell durch Kontaktieren des Supports die Datei wiederhergestellt werden.17 3.4 iCloud ICloud ist Apple’s Online-Dienst, um verschiedenste Daten zwischen produkteigenen Geräte zu synchronisieren. Zusätzlich können mit Apple’s Anwendungen Dokumente erstellt, bearbeitet und online gespeichert werden. Daher werden in den folgenden Unterpunkten 15 Dateiversionen ansehen und verwalten, https://support.google.com/drive/answer/2409045?hl=de, 16. März 2016 16 Um zur Versionsverwaltung zu gelangen, muss das Dokument mit Google Docs geöffnet werden. Dann im Menü Datei“ → Überarbeitungsverlauf anzeigen“ auswählen, 8. März 2016. ” ” 17 Info zum Papierkorb von Google Drive: https://support.google.com/drive/answer/2375102?hl=de, 8. März 2016. 17 3 Cloud-Dienste die Geschichte und allgemeine Fakten von iCloud (3.4.1) erklärt, der gegenwärtige Funktionsumfang (3.4.2) aufgelistet und geprüft, ob sich der Dienst für unsere Hauptbedürfnisse (3.4.3 bis 3.4.3) eignet. 3.4.1 Geschichte Im ersten Jahr des 21. Jahrhunderts stellte Steve Jobs auf der Macworld Expo iTools vor, ein Dienst der für jeden Mac-Nutzer18 kostenlos war. Dieser Dienst ermöglichte es, E-Mails über mac.com abzurufen, eine Webseite zu erstellen und zu veröffentlichen, einen Webfilter zu verwenden und mit iDisk Daten online zu speichern (20 Megabyte Speichervolumen). Später wurde die Möglichkeit hinzugefügt den Onlinespeicher auf 400 Megabyte zu erweitern. Jedes Megabyte kostete dabei einen Dollar jährlich [17]. 2002 verkündete Jobs, dass iTools, welches bereits 23 Millionen Nutzer hatte, zu .Mac (dotMac) umbenannt wird. Trotz der zusätzlichen Funktionen hatte DotMac nie so viele Benutzer wie iTools, da der Dienst ab diesem Zeitpunkt pro Jahr $99.95 kostete. Neuerungen waren, dass E-Mails zum vorherigen POP-Protokoll nun auch IMAP unterstützten, iDisk die Daten automatisch synchronisieren konnte und die Vorgängerversion des Antivirenprogramms McAfee 19 , namens Virex, zur Verfügung gestellt wurde. Andere Nebenfeatures war die Möglichkeit Kalendertermine mit Anderen zu teilen. Für alle anderen Nutzer wurde später der kostenlose Service iSync zur Verfügung gestellt, der jedoch nur eingeschränkte Funktionalität aufwies. Obwohl es im Laufe der Zeit immer weitere Verbesserungen von .Mac gab und 2007 bereits 10GB um $49.95 pro Jahr erhältlich waren, stand .Mac immer mehr im Schatten anderer Konkurrenten [17]. 2008 wurde .Mac von MobileMe ersetzt. Die größten Neuerungen dabei waren, dass ab sofort die Domain me.com anstatt mac.com verwendet wurde und die Synchronisation der Daten um einiges verbessert wurde. Zusätzlich wurde die Weboberfläche unter dem alle Dienste gebündelt wurden erneuert. Für neue Nutzer kostete der Service wieder $99 im Jahr und war daher teurer, als die von Google angebotenen Dienste, jedoch war MobileMe umfangreicher [3]. 2011 wurde MobileMe schließlich von iCloud abgelöst. Dabei sind einige Dienste weggefallen oder ersetzt worden. Die Funktion, sein eigenes iPhone über den Computer zu orten oder zu sperren, ist mit Mein iPhone suchen nach wie vor möglich. Hingegen wurde der Service iDisk und iDisk entfernt. 2014 kam iCloud Drive hinzu, welches ähnlich wie iDisk ist. Heute können bis zu 1TB Daten auf iCloud gespeichert werden [21]. 3.4.2 Anwendung Wie im Abschnitt 3.4.1 erklärt wurde, besitzt iCloud mehrere Komponenten und Funktionen. Dabei besteht der Kern dieser Komponenten aus den wichtigsten DokumentenBearbeitungsprogrammen: 18 Mac ist die Abkürzung für Macintosh und bezeichnet allgemein die Computer der Firma Apple. Siehe auch https://de.wikipedia.org/wiki/Macintosh 19 Virex: https://de.wikipedia.org/wiki/McAfee_VirusScan, 13. August 2015 18 3.4 iCloud Pages um Textdokumente zu bearbeiten, Numbers ein Tabellenkalkulationsprogramm und Keynote mit dem es möglich ist, Präsentationen zu erstellen. Diese Kollektion an Programmen wird von Apple iWork genannt. IWork gibt es sowohl als Weboberfläche im Browser, als auch als App zum Herunterladen für OS X20 und iOS21 . Jede Datei, die mit einem der oben genannten Programme erstellt wurde, kann online gespeichert und geteilt werden. Der gemeinsame Speicherplatz ist dabei auf ein Gigabyte beschränkt. Problematisch wird das Arbeiten mit Microsoft Office Dokumenten, da beim konvertieren von z. B. Word-Dateien ins Pages-Format eventuell verschiedene Schriftarten ausgetauscht werden oder spezifische Word-Funktionen nicht exakt übernommen werden. Die iWork Programme sind für alle zugänglich, die einen iCloud Account (kostenlos) besitzen. Sollte jedoch der Nutzer ein Apple Gerät besitzen, so erweitert sich der kostenlos zur Verfügung gestellte Speicherplatz auf fünf Gigabyte. Zusätzlich bekommt der Nutzer Programme, die ihm ermöglichen seine Kontakte, Termine und Notizen in die Cloud zu speichern und mit anderen Geräten zu synchronisieren. Wahrscheinlich ist es aber nie möglich all den neu gewonnen Cloud-Speicher nur mit eigenen Dokumenten zu füllen, da ebenso die Backups von mobilen iOS Geräten viel Speicherplatz einnehmen werden. Ein anderes Programm, das bei Verwendung eines Apple Gerätes hinzu kommt, ist iCloud Drive. Mit diesem Dienst ist es nun auch möglich verschiedenste Dateien online zu speichern. Das Speichern funktioniert dabei nicht nur mit dem Browser und den iOS-Anwendungen, sondern auch mit Syncfoldern. Auf diese Art und Weise kann auch das Konvertieren von Word-Dokumenten verhindert werden: • Für iOS Geräte empfiehlt es sich die jeweilige Microsoft Office App zu installieren, da in denen direkt auf den Cloudspeicher zugegriffen werde kann. • Für Windows sollte der Drive Sync-Folder zum Öffnen, Speichern und Synchronisieren von Dokumenten über die iCloud verwendet werden. • Für Android gibt es momentan keine von Apple bereitgestellten Apps. Daher kann der Nutzer auf seine Dokumente nur über die Weboberfläche oder DrittanbieterAnwendungen zugreifen. Im folgenden Abschnitt werden nun kurz einige Funktionen von iCloud genauer beschrieben. Dabei ist es wichtig die Ordnerstruktur von iCloud zu kennen. Der große Hauptordner, in dem alles gespeichert wird, ist nur über iCloud Drive zugänglich. In diesen Ordner können neue Ordner und Dateien (egal welches Format) hochgeladen werden. Zusätzlich existieren auch Ordner die nur von einer bestimmten Anwendung benutzt werden dürfen. So besitzt Pages seinen eigenen Ordner in dem nur Textdokumente gespeichert werden können. Manche Anwendungsordner können dabei aber auch 20 21 OS X ist Apple’s Betriebsystem für seine Standcomputer iMac und Laptops Macbook. iOS ist ein Betriebsystem, das auf allen Smartphones iPhone und Tablets iPad von Apple läuft. 19 3 Cloud-Dienste versteckt sein und nur z. B. mit der Konsole entdeckt werden. Der verbrauchte Speicher von Backups bleibt hingegen völlig unsichtbar und wird auch nicht im Syncfolder mit synchronisiert. 3.4.3 Funktionalität Suchen und Sortieren Möchte der Nutzer nach Dokumenten über die Weboberfläche suchen, so muss er in die jeweilige Anwendung des Dokumententyps navigieren. Z. B. muss auf der Suche nach einem Tabellendokument zuerst in die Online-Anwendung Numbers gewechselt werden, um das gewünschte Dokument finden zu können. Der Grund für diesen Weg liegt darin, dass iCloud Drive keine Suchleiste besitzt. Das Gleiche gilt ebenso für das Sortieren von Dokumenten. Die Pages-Anwendung besitzt dabei das Sortieren nach Namen und Datum. Hingegen besitzt die iCloud Drive App für iOS wiederum schon so ein Such- und Sortierfeld. Dabei kann nicht nur nach Datum und Name sortiert werden, sondern auch nach Tags. Zusätzlich ist es auch möglich in den entsprechenden Anwendungen, z. B Pages, nach den Dokumenten zu suchen und zu sortieren (gleich wie bei der Weboberfläche). Die in allen iOS integrierte Schnellsuche (Spotlight) findet trotzdem nur Dateien, die in einen Anwendungsordner gespeichert wurden. Für Windows und Mac gibt es den Syncfolder, der genau die gleichen Such- und Sortier-Eigenschaften besitzt, wie ein normaler Ordner. Datenfreigabe In iWork gibt es die Möglichkeit seine Dokumente lesend und schreibend zu teilen. Dies funktioniert aber nur, wenn die Datei bereits in eines der jeweiligen Apple-Formate konvertiert wurde. Das ist auch einer der Hauptgründe warum sich iCloud nicht für die gewünschten Funktionen unseres Programms eignet [16]. Versionsverwaltung und Aktivitäten Bei der Versionsverwaltung von Dokumenten gilt dasselbe wie bei der Datenfreigabe. Erst nachdem das Dokument in ein Apple-Format konvertiert wurde, kann problemlos zwischen den verschiedenen Versionen der Datei hin und her gewechselt werden. Eine Vorschau mit den geänderten Zeilen gibt es dabei aber nicht [16]. Löschen und Wiederherstellen Egal ob der Nutzer gerade den Syncfolder, iCloud Drive oder eine der drei DokumenteBearbeitungs-Programme verwendet, sobald er eine Datei löscht, kann kein anderes Gerät mehr auf jene zugreifen. Es ist lediglich nur möglich, die Datei über die Weboberfläche 20 3.5 Kostenübersicht wiederherzustellen.22 Dieser Weg, die Dateien zurückzuholen, ist aber nur in den ersten 30 Tagen nach der Löschung durchführbar23 . 3.5 Kostenübersicht Die Kosten für die verschiedenen Clouddienste ist nach Gigabyte unterschiedlich, wobei OneDrive und Dropbox zwei verschiedene Dienste mit unterschiedlichen Preisen anbieten. Es wird also bei diesen Clouddiensten zwischen Privatpersonen und Geschäftspersonen unterschieden. Es gibt in allen Clouddiensten die Möglichkeit für Privatpersonen diese kostenlos zu verwenden, darüber hinaus sind Geschäftskonten kostenpflichtig. Die unterschiedlichen Kosten je nach Speicher für jeweilige Clouddienste inklusive Geschäftskonten werden in der folgenden Tabelle 3.2 deutlich dargestellt. 22 23 In der Weboberfläche finden sie Funktion unter Einstellungen → Erweitert → Dateien wiederherstellen. Dokumente wiederherstellen: https://support.apple.com/de-at/HT201104, 17. März 2016 21 3 Cloud-Dienste Cloud-Dienst OneDrive für Privatpersonen25 OneDrive for Business26 Dropbox27 Dropbox Pro28 Google Drive29 iCloud30 Speicher 15 GB 100 GB 200 GB 1 TB 1 TB 2 GB 1 TB 5 TB für 5 Nutzer 15 GB 100 GB 1 TB 10 TB 20 TB 30 TB 5 GB 50 GB 200 GB 1 TB Preis kostenlos 1,99 e/Monat 3,99 e/Monat 7,00 e/Monat 8,80 e pro Nutzer/Monat kostenlos 9,99 e/Monat 12 e pro Nutzer/Monat kostenlos 1,99 $/Monat 9,99 $/Monat 99,99 $/Monat 199,99 $/Monat 299,99 $/Monat kostenlos 0,99 e/Monat 2,99 e/Monat 9,99 e/Monat Tabelle 3.2: Kostenübersicht 3.6 Zusammenfassung Es gibt viele verschiedene Cloud-Anbieter, die meisten davon werden nicht von der Mehrheit der Menschen verwendet. Eine Cloud ist ein Speicherplatz im Internet, sodass Nutzer ihre Dokumente, Fotos etc. dort ablegen können und jederzeit Zugriff darauf haben. Doch sie wissen nicht, wo diese in Wirklichkeit gespeichert sind, das heißt sowie, dass die Dateien auf der Welt verteilt sein können. Daher auch der Name Cloud“, da der ” Nutzer nicht merkt, wohin bzw. woher die Dokumente gespeichert wurden bzw. geholt werden. Die bekanntesten und am meisten verwendeten Clouddienste, nämlich OneDrive, Dropbox, Google Drive und iCloud, wurden in diesem Kapitel eingeführt. Diese Dienste werden alltäglich bei Verwendung eines Smartphones benützt, da die meisten Smartphones eines dieser Clouddienste unterstützt und das Verwenden den Nutzern auffordert, um wichtige 25 https://www.vetalio.de/microsoft-onedrive-kosten, 22. Februar 2016 https://products.office.com/de-at/business/compare-office-365-for-business-plans, 22. Februar 2016 27 https://www.dropbox.com/plans, 22. Februar 2016 28 https://www.dropbox.com/plans, 22. Februar 2016 29 https://support.google.com/drive/answer/2375123?hl=de, 22. Februar 2016 30 https://support.apple.com/de-at/HT201238, 22. Februar 2016 26 22 3.6 Zusammenfassung Daten dort abzuspeichern. Die verschiedenen Anwendungen und Funktionalitäten der jeweiligen Cloud-Diensten wurden besprochen und auch die Geschichte deren berichtet. Aus diesen Informationen entsteht die Übersichtstabelle 3.3, in dieser zu sehen ist, welches Cloud-Dienst welche Funktionen und Anwendungen abdeckt. Diese Informationen sind wichtig für die Entscheidung, welche Clouddienste für den Prototyp verwendet werden bzw. wie die gemeinsame Lösung für die verschiedenen Anwendungsfälle, die in Kapitel 6 beschrieben werden, aussehen muss. Für dieses Projekt ist es nötig, dass mit Word-Dokumenten gearbeitet werden kann, da die Kunden von Advokat hauptsächlich mit diesen arbeiten. Daher sollten die Clouddienste die Möglichkeit geben, diese Dokumente mobil, offline als auch online zu bearbeiten, dabei ist es aber wichtig, dass diese Bearbeitung in unkomplizierter Art und Weise erfolgt. Das Editieren sollte nicht in einem anderen Programm als Word passieren. Diese Aspekte sind für die Entscheidung sehr wichtig und deshalb wurde iCloud ausgeschlossen, da es in keiner Hinsicht möglich ist, Word-Dokumente mobil und online direkt in Word und Word-Online zu öffnen. In OneDrive und Dropbox geschehen diese Schritte einwandfrei, wobei in GoogleDrive das Online- und Mobil-Bearbeiten durch Word-Online und Word nicht integriert ist. Doch trotzdem kann die Datei mit Google Docs geändert werden und es wird als eine Word-Datei synchronisiert. Sonst ist jegliches Bearbeiten mit Word möglich. Dies war der Hauptpunkt, GoogleDrive nicht zu eliminieren und der angebotener kostenloser Speicher ist auch angemessen. Bei OneDrive und Dropbox wurde auf die Business-Konten verzichtet, da es nicht nötig ist, so viel Speicher zu besitzen. Denn die 15 GB, die von OneDrive angeboten werden, und die 2 GB von Dropbox reichen für die Verwendung der Clouddienste aus und sind zu dem auch kostenlos. Ein anderer Faktor für die Entsagung des Business-Angebots war auch, dass die Angebote für Privatkunden die Anforderungen für die Anwendungsfälle abdecken. Nach all diesen Aspekten wurde der Entschluss gefasst, dass die kostenlosen OneDrive, Dropbox und Google Drive für den Prototyp in Frage kommen. App Online-Anwendung SyncFolder Suchen nach Metadaten Suchen nach Inhalt Suchen nach Namen \ iCloud Dropbox GoogleDrive OneDrive 331 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 Dropbox Pro/OneDrive for Business Privatpersonen \\ 31 evtl. nur über Drittanbieter 23 3 Cloud-Dienste Sortieren von Dokumenten Teilen mit Anmelde- bzw. Kennworteinschränkung Teilen mit Zugriffseinstellung Teilen mit Kommentaroption Teilen mit Ablaufdatum Linkbesitzer können Link weiterteilen Link teilen per E-Mail Link teilen per AccountEinladung Vollständige Veröffentlichung von Dokumenten Folgen von Dokumenten Versionskontrolle Datenwiederherstellung Remote-Löschen Eigenschaften von Dokumenten bleiben erhalten Office-Online Office365 bzw. Office Office-Dokumente werden unterstützt Offline-Zugriff auf Dokumente Synchronisation auf allen Geräten Privatpersonen Business Speicher kostenlos iCloud Dropbox GoogleDrive OneDrive 3 3 3 3 3 3 3 3 3 3\ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 \ 3 332 3 3 3\ 3 3 3 3 3 3 3 3 3 3 335 3 3 3 3 3 3 2 GB\\ 3 3 15 GB\\ 3 3 15 GB\\ 5 GB Tabelle 3.3: Clouddienste Vergleich Solange sie nicht mit Pages bearbeitet werden. Onlinebearbeitung mit Google Docs. 34 Nur bei iOS-Apps. 35 keine Android oder Windows Phone Geräte 24 3 3 334 Dropbox Pro/OneDrive for Business \\ Privatpersonen 33 3 3 3 333 3 3 3 \ 32 3 3 3 4 Verwendete Technologien In diesem Kapitel wird die Programmiersprache VB.NET und XAML, in der unser Programm geschrieben ist, erklärt (Abschnitt 4.1). Als Programmierumgebung wurde dabei Visual Studio verwendet (Unterpunkt 4.3). Das getrennte Programmieren und das Zusammenfügen von Codeteilen verlangt ein Programm, mit dem unterschiedliche Programmversionen verwaltet werden können. Darum werden der Visual Studio Team Explorer und Bitbucket verwendet und in Abschnitt Visual Studio konkretisiert. Die graphische Oberfläche unseres Programms benötigt eine Datenbank, die mittels der Software-Komponente ADO.NET angebunden wird. Zusätzlich wird die dabei verwendete Datenbanksprache SQL beschrieben. Des Weiteren benützen die drei Cloud-Dienste OneDrive, Dropbox und Google Drive das gleiche Protokoll, um Nutzer über die Programmierschnittstellen anzumelden. Das Protokoll OAuth 2.0 wird daher im Unterpunkt 4.6 erklärt. Zuletzt werden in Abschnitten 4.7 bis 4.9 einige Informationen und Merkmale der verschiedenen Cloud-API’s dargelegt und beschrieben, wie gut sie für die Anbindung an unser Programm geeignet waren. 4.1 VB.NET Da das Programm Advokat mit VB.NET entwickelt wurde, wurde diese Sprache verwendet, um diese Bachelorarbeit zu verwirklichen. VB.NET ist eine objektorientierte Programmiersprache und ist simpel zum Lernen, da sie relativ wenige Schlüsselwörter, also reservierte Wörter, verfügt. Die Sprache VB.NET wurde für .NET entwickelt und .NET wurde für das Entwickeln von Webprogrammen konzipiert. Auch wenn .NET webbasiert ist, kann VB.NET für drei verschiedene Programmtypen angewendet werden, nämlich für Web-, Windows- und Konsole-Anwendungen. (vgl. [15, Seite 4,6]) Für unser Projekt war nur die Windows-Anwendung wichtig, also ist das entwickelte Projekt eine so genannte WPF-Anwendung (steht für Windows Presentation Foundation). Die detaillierten Informationen über unsere Anwendung werden in Abschnitt 5.1 erklärt. 4.2 XAML XAML1 steht für Extensible Application Markup Language und ist eine deklarative Sprache. XAML wurde von Microsoft entwickelt und dient zur Erstellung von Benutzeroberflächen. 1 XAML: https://msdn.microsoft.com/en-us/library/cc189036(VS.95).aspx, 21. März 2016 25 4 Verwendete Technologien Diese Programmiersprache ermöglicht das Deklarieren von GUI-Objekten und es kann dann ein separates Code im Hintergrund erstellt werden, um bei Events, wie Loading, Closing, Click etc., diese Objekte zu manipulieren. Die Benutzeroberfläche, die in Kapitel 5 unter Abschnitt 5.1 beschrieben wird, wurde mit XAML entwickelt und VB.NET für die Objektzugriffe, die durch diese Sprache deklariert wurden, verwendet. 4.3 Visual Studio, Team Explorer und Bitbucket Für das gemeinsame Arbeiten und für die Versionskontrolle des Codes war es nötig ein Bitbucket 2 Repository zu verwenden. Bitbucket ist ein Filehosting-Dienst, der das Versionskontrollsystem Git 3 unterstützt. Bitbucket bietet seinen Nutzern das Erstellen von privaten Repositorys, diese sind also nicht öffentlich sichtbar, kostenlos an. Visual Studio Team Explorer 4 ist ein Plug-in für Visual Studio und wird verwendet um mit Git-Projekten zu arbeiten. Dabei wird das Projekt mithilfe von Team Explorer geklont und nötige Git-Befehle, wie commit, pull und push, werden mit deren Benutzeroberfläche ausgeführt. Nach dem Überarbeiten des Codes wird diese geänderte Datei schon zum Commiten vorgeschlagen. Dieses Interface ist recht praktisch beim Programmieren, da alles im selbem Programm, also in Visual Studio, erfolgt. In der Abteilung Projekt“ im Team-Explorer-Fenster werden für das aktive Git-Projekt ” verschiedene Git-Funktionen angeboten: Unter Änderungen“ erfolgen die sogenannten ” Commits, unter Branches“ werden die Branches erstellt oder auch verwalten, unter ” Sync“ werden die Commits gepullt oder gepusht und unter Einstellungen“ wird das ” ” jeweilige Git-Projekt verwalten. Unter dem Bereich Projektmappen“ werden alle geklonten Projekte angezeigt. Zusätz” lich können dort neue Projekte geklont oder jene geklonte, die nicht angezeigt werden, im Datei-Explorer gesucht und geöffnet werden. 4.4 SQL Structured Query Language, abgekürzt SQL, ist eine Sprache, die für Datenbank-Abfragen verwendet wird. (vgl. [8, Seite 7]) Es wird also durch SQL gewünschte Abfragen zu erstellen, um aus einer bestimmten Tabelle aus einer Datenbank Informationen zu bekommen. Das Ergebnis einer SQL-Abfrage ist wiederum eine Tabelle. 2 Bitbucket: https://bitbucket.org, 22. Februar 2016 Git: https://git-scm.com, 22. Februar 2016 4 Visual Studio Team Explorer: https://www.visualstudio.com/en-us/products/ team-explorer-everywhere-vs.aspx, 22. Februar 2016 3 26 4.5 ADO.NET 4.5 ADO.NET ADO.NET (Microsoft ActiveX Data Objects.NET) gehört zum .NET Framework und wird für Datenbankverbindungen angewendet. Mithilfe ADO.NET können Daten in Tabellen abgefragt und upgedatet werden. (vgl. [13]) Die Abbildung 4.15 zeigt die Übersicht über ADO.NET. Wie auf der Übersicht zu sehen ist, trennt ADO.NET bei Abbildung 4.1: ADO.NET Übersicht der Datenbeschaffung aus einer Datenbank die Bereitstellung und Darstellung der Daten. Die Hauptkomponenten von ADO.NET sind der Data Provider und der Data Set. Der Data Provider muss die fachlichen Informationen über die verwendete Datenbank wissen, da ein Data Provider die Schnittstelle zu der Datenbank ist. Der Data Provider besteht wiederum aus vier Objekten: • Connection: baut die Verbindung zur Datenbank auf. • Command: ist eine SQL-Anweisung oder eine gespeicherte Prozedur, die verwendet wird, um Daten aus der Datenbank abzufragen, hinzuzufügen, zu löschen oder zu ändern. • Data Reader: wird verwendet um Daten aus der Datenbank im Read-Only“ und ” Forward-Only“ Modus abzurufen. ” • Data Adapter: ist der wesentlicher Bestandteil des Data Providers. Er schreibt die Daten aus der Datenbank in den Data Set und aktualisiert die Datenbank. Falls es Änderungen im Data Set gibt, wird durch den Data Adapter die Datenbank entsprechend upgedatet. Den Data Set kann man sich wie eine Datenbank-Cache vorstellen, die hat also keine Verbindung zur Datenbank. Sobald eine Datenbankverbindung erstellt wird, kreiert der 5 ADO Übersicht Quelle: http://www.tutorialspoint.com/vb.net/vb.net_database_access.htm, 21. März 2016 27 4 Verwendete Technologien Data Adapter ein Data Set und speichert die Daten aus der Datenbank dort ab. Nach dem die Daten im Data Set gespeichert wurden, wird die Verbindung zur Datenbank geschlossen. Der Data Set ist eine virtuelle Datenbank, die Tabellen, Zeilen und Spalten beinhaltet. Der Datentransfer aus einer Datenbank würde im Code wie in Auflistung 4.1 aussehen. Auflistung 4.1: ADO.NET Datenbank Abfrage SqlRequest = "select * from Dropbox" Command.CommandText = SqlRequest Adapter.SelectCommand = Command DropboxDatabaseContent = New DataTable Connection.Open() Adapter.Fill(DropboxDatabaseContent) 4.6 Anmeldung mit OAuth 2.0 Da die Cloud-APIs anderen Drittanwendungen, wie auch unser Programm eine ist, Zugriff auf Daten der Cloud-Nutzer gewährt, müssen Verfahren verwendet werden, die den Zugang vor Unbefugten schützen. Alle drei Cloud-Anbieter verwenden dafür in ihren Programmschnittstellen das OAuth 2.0 Protokoll. OAuth 2.0 ist der Nachfolger von OAuth und wurde 2006 entwickelt. 4.6.1 Nachteile von Password Authentication Protocol Damit sich eine Anwendung im Namen des Nutzers beim Server anmelden kann, muss der Server feststellen können, um welchen Nutzer-Account es sich handelt (Authentifizierung) und ob die Anwendung auch vom Nutzer berechtigt wurde, Handlungen auszuführen (Autorisierung). In traditionellen Authentifizierungsverfahren wird das Problem der Authentifizierung gelöst, indem an den Server die Benutzerkennung mit übertragen wird. Zusätzlich zur Benutzerkennung muss der Anwendung auch das geheime Passwort des Nutzers, das mit der Benutzererkennung am Server in Relation steht, gegeben werden, damit überprüft werden kann, ob die Anwendung autorisiert ist. Das bringt folgende Probleme mit sich6 : • Damit sich der Benutzer nicht bei jeder Aktion, die er mit der Anwendung ausführen möchte, erneut anmelden muss, muss die Benutzererkennung und das Passwort unverschlüsselt in der Datenbank der Anwendung gespeichert werden. • Der Server ist gezwungen, das Anmeldeverfahren mit Passwort zu unterstützen, obwohl das Verfahren keinen Schutz bietet, sobald kein gutes“ Passwort gewählt ” wird. • Durch das Passwort erhält die Anwendung uneingeschränkten Zugriff in Namen des Benutzers auf alle Dienste, die vom Server zur Verfügung gestellt werden, für alle Zeit bis das Passwort abgeändert wird. 6 Einleitung zur Spezifikation von OAuth 2.0, http://tools.ietf.org/html/rfc6749, 25. März 2016 28 4.6 Anmeldung mit OAuth 2.0 • Aus dem letzten Punkt folgt ebenso, sobald das Passwort abgeändert wird, verlieren auch alle anderen Dritt-Anwendungung, die mit den Diensten des Servers in Verbindung stehen, die Berechtigungen im Namen des Benutzers zu handeln. • Sollte ein Angreifer das Passwort des Nutzers auforschen, so kann sich der Angreifer für alle Dienste autorisieren, die das gleiche Passwort verwenden. Das ist der Grund, warum die Cloud-Anbieter verlangen, dass sich alle Dritt-Anwendungen über das OAuth 2.0 Protokoll authentifizieren. 4.6.2 Funktionsweise Immer wenn ein Befehl, wie z. B das Hochladen eines Dokuments, an den Server des Cloud-Anbieters gesendet wird, so wird mit dieser Anfrage eine Zeichenfolge, auch Access Token genannt, mitübergeben. Mit dem Access Token kann der Server feststellen, welche Drittanwendung verwendet wird und welcher Cloud-Nutzer diese gerade benutzt. Um das Identifizieren der Anwendung mittels Access Token zu ermöglichen, muss diese zuvor erst beim Cloud-Anbieter registriert werden. Die Registrierung erfolgt über den Webbrowser und hat bei allen drei Anbietern ungefähr das gleiche Erscheinungsbild (Siehe auch Abbildung 4.2). Abbildung 4.2: Registrierung einer Dropbox-App Damit die Anwendung das Access Token für den Nutzer speichern kann, muss sich dieser über einen Webbrowser anmelden. Da unser Programm eine WPF-Anwendung ist, kann relativ leicht ein Webbrowser in die graphische Oberfläche unserer App integriert werden (siehe auch Abbildung 5.3). In dem nachfolgendem Abschnitt werden die Abläufe zur Anmeldung, anhand CodeAusschnitten aus unserem Programm erklärt. Genauer gesagt, verwenden wir HTTP 29 4 Verwendete Technologien GET und POST Anfragen, die sich an den Google Drive Server wenden. Der Grund dafür liegt an der beschränkten Funktionalität der Google Drive .NET-Library, die es nicht erlaubt das Anmelden über den WPF-Browser zu ermöglichen Die URL, die der Browser zur Anmeldung des Benutzers aufruft, muss von unserer Anwendung zuerst erstellt werden. Dabei wird eine vom Cloud-Anbieter vordefinierte URL mit den benutzerdefinierten Parametern scope, redirect uri und client id erweitert (siehe auch Auflistung 4.2). Der englische Begriff scope“ kann mit Handlungsspielraum“ ” ” übersetzt werden und bezeichnet auf welche Daten unser Programm Zugriff bekommt. Der Parameter redirect uri steht für die URL, die der Webbrowser nach abgeschlossener Anmeldung aufruft. Dabei bewirkt der Wert urn:ietf:wg:oauth:2.0:oob“, dass der autho” rization code, mit dem später das Access Token angefordert wird, über die Titelleiste des Browser ausgelesen werden kann. Die ClientId, die wir durch das Registrieren unserer Anwendung bekommen haben, wird als letzter Parameter mitübergeben. Auflistung 4.2: Aufrufen der Authentifizierungs-Webseite AuthentificationBrowser.Navigate(String.Format( "https://accounts.google.com/o/oauth2/auth? response type=code& scope={0}&redirect uri={1}& client id={2} &hl=de&from login=1&as=d832bdaf61552d&pli=1&authuser=0", DriveService.Scope.Drive, "urn:ietf:wg:oauth:2.0:oob", AppKey)) Als nächstens schließt sich das Browserfenster und unsere Anwendung erstellt eine HTTP Post Anfrage, um das Access Token zu bekommen. Dabei bezeichnet die Variable AuthorizationCode“ diex aus der Titelleiste des Browsers ausgelesene Zeichenfolge. ” Auflistung 4.3: Post-Anfrage um Access und Refresh-Token zu bekommen Dim param As New Specialized.NameValueCollection param.Add("code", AuthorizationCode) param.Add("client_id", AppKey) param.Add("client_secret", AppSecret) param.Add("redirect_uri", "urn:ietf:wg:oauth:2.0:oob") param.Add("grant_type", "authorization_code") Dim response_bytes = sendto.UploadValues("https://www.googleapis.com/oauth2/v3/token", "POST", param) Nachdem die Anfrage gesendet wurde, antwortet der Server mit dem Access Token. Im Fall vom Google Drive kommen jedoch noch zwei weitere Parameter hinzu, denn das Access Token ist dort nur ungefähr eine Stunde gültig. Die genaue Gültigkeitsdauer kann durch den Wert von expires in“ in Erfahrung gebracht werden. Nachdem das ” Access Token abgelaufen ist, kann durch den dritten zurückgegebenen Wert, mit den Namen refresh token“, jederzeit ein neues Access Token angefordert werden. Durch das ” Verwenden eines Refresh Token ändert sich automatisch das Access Token jede Stunde, ohne dass sich der Benutzer erneut anmelden muss. Angreifer können ab dann mit einem alten Access Token nichts mehr anfangen. 30 4.7 OneDrive 4.7 OneDrive Für die Implementierung von OneDrive wurde die OneDriveRestAPI 7 genutzt. Diese API unterstützt das Hochladen, Herunterladen, Löschen von Dateien und das Erstellen von Ordnern. Sie bietet noch das Teilen für den lesenden Zugriff an. Das Hauptproblem dieser API ist es, dass die Dokumentation dieser API sehr mager ist, dass es Schwierigkeiten gab, die Funktionalität so hinzubekommen, wie es von den Projektanbietern erwünscht war. Es stehen auch nur Funktionen zur Verfügung ohne jegliche Dokumentation in der API selbst. Daher wurden die meisten Code-Teile von der OneDrive Implementierung durch sämtliche Probierereien entwickelt. Für das Hoch- und Herunterladen jedoch gibt es ein Beispiel, um zu sehen auch, wie die API zu funktionieren hat. Alle anderen Funktionalitäten der API aber sind für das selbständige Austesten gedacht. Somit wurde später klar, dass das Teilen für den Lese-Und-Schreib-Zugriff nicht verfügbar war, wurde dieser Teil durch das Verlinken zur Webseite gelöst. Andere wichtige Funktionalitäten für dieses Projekt sind dennoch von dieser API abgedeckt. 4.8 Dropbox Am 9. September 2015 starteten die Arbeiten, die Schnittstelle von Dropbox in unser Programm zu integrieren. Die Liste der damals von Dropbox direkt unterstützten API ’s enthielt sieben SDK ’s in unterschiedlichen Programmiersprachen und eine Rest-API 8 . Die Sprache VB.NET fehlte jedoch in dieser Auflistung.9 Unter der von Dropbox vorgeschlagenen Liste an Libraries von Drittanbietern10 wurde die von Damian Karzon mit den Namen DropNet 11 ausgewählt. Fast am Ende der DropNet Implementierung wurde klar, dass wie auch bei OneDrive, der 5. Anwendungsfall Kollaboration mit Partnern“ (siehe 6.6) so nicht integriert werden ” kann. Der Leser beachte, dass es über die Weboberfläche sehr wohl möglich ist, ein Dokument einem anderen Dropbox Nutzer mit geforderter Anmeldung und schreibendem Zugriff freizugeben. Schuld daran ist jedoch nicht DropNet, sondern die fehlenden Funktionen seitens der Dropbox Api.12 Leider ließ sich dieses Problem auch nicht durch simulieren der Ajax-Abfragen, die beim Verwenden eines Webbrowser entstehen, lösen. Das Hauptproblem liegt dabei, dass sich das Access-Token von der Library und Access-Token aus dem Webbrowser (logischerweise) unterscheiden und Aufrufe mit dem Access-Token von der Library abgelehnt werden. Die Ajax-Anfrage, um ein Dokument schreibend zu teilen, wird in Abbildung 4.3 dargestellt. Nachdem das Problem, wie bei OneDrive, durch Weiterleiten des Nutzers zum Webbrowser umgangen wurde, kündigte Dropbox am 4. November 2015 die zweite Version 7 OneDriveRestAPI: https://github.com/saguiitay/OneDriveRestAPI, 22. Februar 2016 Rest-API’s arbeiten mit HTTP An- und Abfragen. 9 Dropbox-API Version 1: https://www.dropbox.com/developers-v1/core, 20.März 2016 10 Drobox’s Drittanbieter-Bibliotheken: https://www.dropbox.com/developers-v1/core/sdks/other, 20. März 2016 11 Dokumentation von DropNet: http://dkdevelopment.net/what-im-doing/dropnet/, 20. März 2016 12 Dropbox Rest Api: https://www.dropbox.com/developers-v1/core/docs, 20. März 2016 8 31 4 Verwendete Technologien Abbildung 4.3: Der Versuch die Ajax-Anfragen vom Webbrowser zu verwenden ihrer API an.13 Neben den Programmiersprachen Swift, Python und Java wird nun auch .NET unterstützt. Zusätzlich ist das Teilen von Ordnern soweit erweitert worden, dass der 5. Anwendungsfall (Kollaboration mit Partnern, Abschnitt 6.6) nun integriert werden kann. Daher und damit Advokat keine veraltete Anbindung an Dropbox verwenden muss, wurde die Anbindung an Dropbox von Grund auf neu programmiert. Manche Funktionen, so auch das Teilen von Ordnern, waren bei der Entwicklung des Programms in der Beta-Phase. Daher kam es zu dem Phänomen, dass Teile unseres Programms, die mit Dropbox zu tun hatten, von einem zum anderen Tag nicht mehr funktionierten. Nach updaten der Dropbox API wurde dann meistens klar, welche Funktionen ausgetauscht werden mussten. 4.9 Google Drive Im Gegensatz zu OneDrive ist die Drive Rest API besser dokumentiert und einsteigerfreundlicher. Es gibt unter Google Developers eine Startseite, in welcher die verschiedenen Funktionen der API gezeigt werden,14 Beispiele in zehn verschiedenen Programmiersprachen, die es ermöglichen ein kleines Konsolen-Programm mit der Drive API innerhalb von fünf Minuten zu schreiben15 und eine genau Dokumentation für alle Klassen, die eine wichtige Rolle in der API spielen16 . Die einzige Herausforderung beim Integrieren von Google Drive ist das Anmelden. Beinahe der ganze Anmeldevorgang hängt von diesen Code-Zeilen (Auflistung 4.4) ab.17 13 Dropbox API v2 launches today: https://blogs.dropbox.com/developers/2015/11/ dropbox-api-v2-launches-today/, 20. März 2016. 14 Drive Übersicht: https://developers.google.com/drive/v3/web/about-sdk, 12. März 2016 15 Schnellstart mit .NET, https://developers.google.com/drive/v3/web/quickstart/dotnet, 12. März 2016 16 API-Documentation: https://developers.google.com/resources/api-libraries/documentation/ drive/v3/csharp/latest/annotated.html, 12. März 2016 17 Diese Codezeilen basieren auf das Starter Beispiel von Google Drive für .Net: https://developers. 32 4.10 Zusammenfassung Auflistung 4.4: Anmeldung unter Google Drive Dim Credential As UserCredential Credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, Scopes, "user", CancellationToken.None, new FileDataStore(credPath, true)).Result Das Problem ist die Google Klasse FileDataStore, die im Verzeichnis credPath ein Textdokument anlegt, um die Anmeldedaten zwischenzuspeichern (zu cachen). Wurden die Anmeldedaten des Benutzers user noch nicht gespeichert, öffnet die Google Drive API automatisch den Standard-Browser des Computers, damit sich der Nutzer anmelden kann. Jedoch ist eine geforderte Eigenschaft an unsere Library, die Schnittstellen der CloudAnbieter zu vereinheitlichen. OneDrive und Dropbox melden den Nutzer über ein eigens erstelltes Browser-Fenster an (Siehe auch Abbildung 5.3). Darum wird wie im Kapitel OAuth 4.6 beschrieben, das Access Token und die anderen Authentifizierungsdaten über HTTP abgefragt. Danach werden diese Daten in die Klasse MyDataStore gespeichert, die die gleiche Schnittstelle implementiert, wie auch Google’s Klasse FileDataStore. Somit wird das Öffnen des Standard-Browsers vermieden und die Schnittstelle unserer Library bleibt einheitlich. 4.10 Zusammenfassung Dieses Kapitel befasst sich mit den Technologien, die in diesem Projekt verwendet wurden. Eines davon ist die Programmiersprache VB.NET, mit dem das Programm und die Library erstellt wurde. Kurz wird diese Programmiersprache vorgestellt und die drei Anwendungsmöglichkeiten mittels VB.NET werden erwähnt. Diese sind die Web-, Windows- und Konsole-Anwendungen. Die andere Programmiersprache, die für die Entwicklung verwendet wurde, ist XAML, die für das Erstellen von Benutzeroberflächen in der .NET Umgebung nötig ist. Für eine Teamarbeit wurde ein Bitbucket Repository benutzt. Bitbucket ist ein Filehosting-Dienst mit dem Versionskontrollsystems Git. Das Repository wurde mittels Visual Studio Team Explorer, ein Plug-In für Visual Studio, angebunden. Die verschiedenen Funktionalitäten dieses Plug-Ins wurden in diesem Kapitell vorgestellt. Anschließend werden die Technologien für die Datenbankverbindung eingeführt, nämlich SQL und ADO.NET. SQL ist zuständig für die Datenbank-Abfragen. ADO.NET hingegen stellt die Verbindung zur Datenbank auf und sendet die Abfragen zur Datenbank und bekommt das entsprechende Ergebnis zurück. google.com/drive/v3/web/quickstart/dotnet, 20. März 2016 33 4 Verwendete Technologien Die Authentifizierung für die einzelnen Cloud-Dienste erfolgt durch den Cloud-Anbietern mit OAuth und wie dies funktioniert, wird einzeln beschrieben. Die Authentifizierung ist nötig um Zugriff auf das angegebene Konto zu haben. Somit ist es auch möglich Dateien zu verwalten, dafür aber auch sogenannte SScopesängegeben müssen. Zuletzt werden die verwendeten APIs von OneDrive, Dropbox und GoogleDrive zusammengefasst, wobei die Hindernisse beim Implementieren auftauchten, auch besprochen werden. 34 5 Prototyp: Cloudverwaltung In diesem Kapitel bekommt der Leser einen Überblick über die Implementierung unseres Programms mit dem Namen Cloudverwaltung“. Wie im Dokument Mobiles Arbeiten ” ” mit Dokumenten “ beschrieben wird (siehe Anhang A.2.3), muss eine Testapplikation implementiert werden, um das Programm entsprechend austesten zu können. Der Code für die Testanwendung besteht dabei großteils aus der graphischen Oberfläche und wird daher im Abschnitt 5.1 mit den Namen Benutzeroberfläche erklärt. Die Testanwendung spielt auch eine große Rolle, bei der Präsentation vor der Advokat-Kommission. Dementsprechend simuliert die Testapplikation, die Benutzeroberfläche, wie sie in Advokat integriert werden würde. Die Library, deren Aufgabe es ist, die verschiedenen Cloud-Dienste zu einer einheitlichen Schnittstelle zu vereinfachen, wird in Abschnitt 5.2 beschrieben. Die Library verwendet keine Datenbank und keine graphischen Komponenten. Dies ist wichtig damit sie problemlos als DLL ins Advokat-Programm übernommen werden kann. Die Definition von DLL’s wird im Unterpunkt 5.3 erklärt. Dadurch, dass keine Datenbank in der Library verwendet wird, verlagert sich die Verantwortung, die entstehenden Daten konsistent zu halten, hinüber zur Testapplikation. Daher wird in der Testanwendung auch die Datenbank, die der von Advokat ähneln soll, simuliert. Der Aufbau der Datenbank wird in 5.4 beschreiben. 5.1 Benutzeroberfläche Die Benutzeroberfläche wurde mit XAML und VB.NET entwickelt und stellt ein Prototyp für die Cloudverwaltung dar. Das heißt, dass diese Oberfläche ein Idealbeispiel für die einzelnen Anwendungsfälle, die in Kapitel 6 eingeführt werden, ist. Diese Darstellung des Programms soll das Aktenverzeichnis von Advokat imitieren und diese mittels der von uns erstellten Cloud-Library, deren Details in Abschnitt 5.2 beschrieben werden, verwalten. Hier ist mit verwalten das Hochladen auf die Cloud, das Teilen von hochgeladenen Dokumenten und das Löschen von Dokumenten aus der Cloud gemeint. Diese Angebote, deren Anwendungen durch die Oberfläche und auch Einzelheiten der Benutzeroberfläche werden mit Hilfe von Abbildungen einzeln in diesem Abschnitt erklärt. In Abbildung 5.1 ist das Hauptfenster des Programms zu sehen, wo alle Akten aufgelistet sind. Dieses Hauptfenster soll die Auflistung der Akten in Advokat darstellen. Jene Dokumente, die schon auf die Cloud hochgeladen wurden, sind mit dem dazugehörigen Cloud-Logo versehen. Also wurde in (a) die Datei Klage.docx“ auf Dropbox und ” Streitverhandlung.docx“ auf OneDrive hochgeladen. In (b) wurde zusätzlich Schuldner” ” 35 5 Prototyp: Cloudverwaltung (a) Kontextmenü vor dem Hochladen (b) Kontextmenü nach dem Hochladen Abbildung 5.1: Hauptfenster des Programms zahlung.docx“ auf Google Drive hochgeladen. Sofern eine Datei nicht hochgeladen wurde, wird im Kontextmenü nur das Hochladen, wie es in Abbildung 5.1 (a) zu sehen is, angezeigt und es ist nicht mit einem Cloud-Logo versehen. Sobald das Hochladen erfolgreich abgeschlossen ist, gibt es die Möglichkeit die Datei zu teilen oder aus der Cloud zu löschen, wie in Abbildung 5.1 (b) dargestellt. Zusätzlich können die Eigenschaften über die Datei angezeigt werden. Abbildung 5.2: Benutzeroberfläche für das Hochladen Nach dem Klicken auf das Hochladen im Kontextmenü erscheint ein neues Fenster, das in Abbildung 5.2 dargestellt wird. In diesem Fenster ist es möglich einen gewünschten Clouddienst auszuwählen, dabei steht • OneDrive, • Dropbox und 36 5.1 Benutzeroberfläche • GoogleDrive zur Verfügung. Als nächstes kann ein Verwalter ausgewählt werden. Diese sind jene, deren Authentifizierungsdaten für das ausgewählte Clouddienst in der Datenbank, die in Abschnitt 5.4 vorgestellt wird, gespeichert wurden. Falls der gewünschte Verwalter nicht angezeigt wird, kann unter Neu“ ein neuer Verwalter in die Datenbank eingetragen werden. ” Zusätzlich kann eine Informationsemail an den Verwalter verfasst werden. Dafür wird das Kontrollkästchen Infomail an Verwalter“ markiert und somit wird der untere Bereich ” für die E-mail aktiviert. Dort kann ein Betreff und ein Text hinzugefügt werden. Die Option Word-Dokument als PDF hochladen“ ist in Advokat schon implemen” tiert, daher ist dieses Kontrollkästchen inaktiv zum Markieren. Die Verschlüsselung der PDF-Datei würde sich dann auch aktivieren, falls das Dokument als PDF hochgeladen wird. Daher ist dies auch inaktiv. Diese zwei Optionen sind trotzdem in diesem Fenster abgebildet, damit sich dieses dem Advokat-Design anpasst. Wie schon erwähnt, ist es möglich neue Verwalter für das Hochladen zu erstellen. Abbildung 5.3: Authentifizierung für OneDrive Nach dem Drücken auf Neu“ öffnet sich wiederum ein neues Fenster, wo die Login-Seite ” des entsprechenden Clouddienstes erscheint, das in Abbildung 5.3 zu sehen ist. In dieser Abbildung ist die Login-Seite von OneDrive zu sehen, wobei es für die anderen Dienste nicht unterschiedlich erscheint. Das heißt, dass der neuer Verwalter sich mit den Anmeldedaten anmelden und den Zugriff auf seinen Account zulassen muss. Für die erforderliche Anmeldung muss der Verwalter ein Account der jeweiligen Cloud besitzen oder einen neuen Account anlegen. Nach der erfolgreichen Anmeldung und der Zulassung werden alle nötigen Daten für die Authentifizierung in die Datenbank hinterlegt und unmittelbar danach wird der neue Verwalter im Fenster Dokument Hochladen“ automatisch vom ” Programm ausgewählt. Wie schon zuvor erklärt, ist es nach dem Hochladen möglich, die Datei zu teilen. Der 37 5 Prototyp: Cloudverwaltung Prototyp erlaubt dem Nutzer eine Datei nur einmal zu teilen. Die Library aber ermöglicht das mehrmalige Teilen einer Datei. Es öffnet sich ein neues Fenster nach dem Drücken auf das Teilen im Kontextmenü. Dieses Fenster wird in Abbildung 5.4 abgebildet. Unter Berechtigung“ gibt es je nach Clouddienst die Auswahl zwischen ” • Lesezugriff ohne Authentifizierung“, ” • Lesezugriff mit Authentifizierung“ und ” • Lese- und Schreibzugriff“. ” Da nicht alle der drei Clouddiensten alle dieser genannten Berechtigungen für das Teilen unterstützen, werden nicht alle dieser zur Auswahl angezeigt. Als nächstes muss je nach Auswahl der Berechtigung eine Empfänger-E-mail angegeben werden, falls dies nicht erforderlich ist, ist dieses Feld inaktiv zum Ausfüllen. Für das Senden einer Infomail wird das Kontrollkästchen Infomail an Empfänger“ angeklickt. Nach dem ist es wiederum nötig, ” einen Empfänger bekannt zu geben, in Abbildung 5.4 ist dieser kundexy@mail.com“. ” Danach kann ein Betreff und ein Text für die E-mail verfasst werden. Mit dieser E-mail wird auch der Link für den Zugriff auf die Datei zum Text angehängt und dem Empfänger übermittelt, sonst wird dieser Link zum Kopieren angezeigt. Jetzt zumal zu den verschiedenen Berechtigungen und deren Funktionalitäten: Abbildung 5.4: Benutzeroberfläche für das Teilen Unter Lesezugriff ohne Authentifizierung“ ist die Erstellung von einem öffentlichen ” Link zu verstehen. Somit hat jeder, der den Link besitzt, einen lesenden Zugriff auf die Datei. Bei Lesezugriff mit Authentifizierung“ hat nur die Jenige/der Jenige Ansicht auf ” das Dokument, die/der sich mit dem jeweiligen Cloud-Konto identifizieren kann. Für die Vorschau ist daher ein Cloud-Account des zugehörigen Clouds nötig. Damit ein Link für die gewünschte Person erstellt werden kann, muss eine E-mail-Adresse in der Benutzeroberfläche angegeben werden. Für das Teilen ist ein Cloud-Konto für diese 38 5.1 Benutzeroberfläche Person nicht Pflicht, erst beim Öffnen des Links wird sie aufgefordert ein Cloud-Account zu besitzen. Die Funktion Lese- und Schreibzugriff“ bedeutet, dass die Datei für eine bestimmte ” Person geteilt wird und dieser berechtigt ist, das Dokument sich anzusehen und zu bearbeiten. Dafür muss die Person ein Cloud-Account besitzen, um sich zu authentifizieren. Da in Dropbox, wie in Kapitel 3 in Abschnitt 3.2 schon beschrieben, nicht möglich ist, Dateien direkt mit Lese- und Schreibzugriff zu teilen, wird für diese Option ein Ordner erstellt und die Datei dorthin verschoben und der Ordner geteilt. Somit hat die Person, die den Zugriff dazu bekommt, die Möglichkeit ein anderes Dokument in den Ordner hochzuladen. Dadurch kann die Kooperation mit Partnern bestens erreicht werden. Für ein Dokument, das in OneDrive hochgeladen wurde, gibt es die Gelegenheit dieses mit der Berechtigung Lesezugriff ohne Authentifizierung“ und Lese- und Schreibzugriff“ zu ” ” teilen. Wobei beim Lese- und Schreibzugriff“ ein Ordner erstellt wird, die Datei dorthin ” verschoben und zum Abschluss wird der Nutzer auf den erstellten Ordner verlinkt, um diesen im Webbrowser zu teilen. Diese Verlinkung wird gebraucht, da die Option Lese” und Schreibzugriff“ von der OneDrive-API nicht unterstützt wird. Darüber hinaus ist die Funktion Lesezugriff mit Authentifizierung“ auch nicht verfügbar. ” In Dropbox hingegen kann einer Person ein lesender Zugriff und ein lesend und schreibender Zugriff auf die Datei gewährt werden. Dafür wird der Sachbearbeiter nicht zu einer Seite verlinkt oder Ähnlichem, sondern kann direkt über die Benutzeroberfläche die Datei teilen. Das heißt, dass das Teilen für den Nutzer vorbereitet wird. Wobei für Lese- und Schreibzugriff“ ein Empfänger vom Verwalter bestimmt sein muss und auch ” wenn keine Infomail gesendet wird, wird von Dropbox eine automatische E-mail an den Empfänger geschickt. Trotzdem kann zusätzlich eine personalisierte Nachricht an die Person verfasst werden, sonst wird der Link dennoch zum Kopieren angezeigt. Im Gegensatz zu OneDrive und Dropbox unterstützt GoogleDrive das Teilen mit der Berechtigung Lesezugriff mit Authentifizierung“ . Die Option Lesezugriff ohne ” ” Authentifizierung“, als auch Lese- und Schreibzugriff“, erfolgen genau gleich, wie bei ” Dropbox. Also wird bei Lese- und Schreibzugriff“ ebenso eine automatisch generierte ” E-mail von Google Drive an den Empfänger gesendet. Für Lesezugriff mit Authentifi” zierung“ muss ein Empfänger angegeben sein, damit dieser sich für den Zugriff auf die Datei authentifizieren kann. Bei dieser Funktion wird genauso an den Empfänger eine automatische E-mail von Google Drive geschickt. Wie bei Lese- und Schreibzugriff“ kann ” trotzdem eine eigene E-mail verfasst werden, sonst wird der Link zum Kopieren erscheinen. Unter Eigenschaften im Kontextmenü einer Datei, die schon online ist, wird ein Fenster, wie in Abbildung 5.5, zum Vorschein kommen. Dort sind Informationen, wie folgt aufgelistet, zu finden: • Auf welchem Clouddienst sie zu finden ist. • Unter welchem Account das Dokument hochgeladen wurde. • Der privater Link mit der Verlinkung, um direkt im Webbrowser die Datei zu sehen. 39 5 Prototyp: Cloudverwaltung Abbildung 5.5: Benutzeroberfläche für die Eigenschaften des Dokuments • Falls vorhanden der öffentlicher Link, um diesen jederzeit wieder kopieren zu können. Um eine Datei aus der Cloud wieder zu entfernen, wird das Kontextmenü Aus Cloud ” löschen“ verwendet. Zur Sicherheit erfolgt eine Abfrage, ob es wirklich erwünscht ist, die Datei aus dem Cloudspeicher zu löschen. Nach der Bestätigung wird überprüft, ob das Dokument in einem Ordner sich befindet, wenn ja, dann werden alle Dateien in diesem Ordner heruntergeladen und sonst wird nur das gewünschte Dokument gedownloaded. 5.1.1 Dokumentation Der Prototyp besitzt die Anbindung der von uns erstellten Library und deckt alle funktionalen Anforderungen von Advokat (siehe Anhang A.2.3) ab, deshalb ist dieser der Kern dieses Projekts. Der Prototyp beinhaltet zugleich die Datenbankanbindung. Die Datenbank wird in Abschnitt 5.4 eingeführt. Für die Verwendung der Library muss zuerst die Library-Datei (.dll) zum Projektverweis hinzugefügt werden. Danach können alle Komponenten der Library durch Importieren dieser verwendet werden. Die Details über die Komponenten der Library sind in Abschnitt 5.2 zu finden. Die Klassennamen im Prototyp fangen mit einem C an, um die Implementierung dem Advokat Programmierstil anzupassen. Die Benutzeroberfläche besteht aus sechs Hauptkomponenten. Diese sind: • CCloudverwaltung • CUpload • CShare • CProperties • CSendMail • CDatabaseConnection Daneben gibt es auch andere Komponente des Prototyps, die in den kommenden Unterpunkten erwähnt werden. 40 5.1 Benutzeroberfläche CCloudverwaltung Die Klasse CCloudverwaltung imitiert das Aktenverzeichnis von Advokat und ist auch der Kern des Prototyps. Diese Klasse besitzt also zugleich ein Fenster, das mit XAML entwickelt wurde, und einen im Hintergrund laufenden Code, der mit VB.NET geschrieben wurde. Der Komponente CCloudverwaltung hat drei Beobachter, diese werden beim Fensterladen, Fensterschließen und bei der Auswahl einer Datei im Fenster aktiviert. Beim Auswählen einer Datei wird aus der Datenbank überprüft, ob diese Datei schon hochgeladen wurde. Falls ja, dann werden im Kontextmenü die Optionen Teilen“, ” Aus Cloud löschen“ und Eigenschaften“ angezeigt. Sonst steht nur das Hochladen“ ” ” ” zur Verfügung. Die hochgeladenen Dokumente werden durch die Überprüfung aus der Datenbank mit jeweilige Cloud-Logos versehen. CUpload Diese Klasse besteht genauso aus einem Fenster und wird nach dem Betätigen des Kontextmenüs Hochladen“ in CCloudverwaltung aufgerufen. Hier wird die Auswahl ” der Clouddienste angeboten für das Hochladen und je nach ausgewähltem Clouddienst werden die Verwalter angezeigt, die in der entsprechenden Cloud-Tabelle in der Datenbank gespeichert wurden. Dabei wird das Hinzufügen neuer Verwalter angeboten und ein Infomail kann an den ausgewählten Account verfasst werden. Vor dem Hochladen wird überprüft, ob ein Clouddienst und danach ein Verwalter ausgewählt wurde. Sonst wird aufgefordert, diese auszusuchen. CAuthentificationBrowser wird verwendet, um einen neuen Verwalter zu erstellen, der dann in die Datenbank eingetragen wird. Diese Klasse besitzt auch ein Fenster, dieses dann der Library mit übergeben wird. CShare Dieser Hauptkomponente ist für das Teilen zuständig und besitzt auch ein Fenster. Der Aufruf dieser Klasse entsteht nach dem Klicken auf das Kontextmenü Teilen“ in ” CCloudverwaltung. In dieser Klasse werden die verschiedenen Optionen für das Teilen angezeigt, dafür wird nach Clouddienst überprüft und je nachdem die Optionen angepasst. Je nach Auswahl einer Option wird aufgefordert, eine E-Mail-Adresse anzugeben und kann zugleich eine Infomail verfasst werden. Hier wird vor dem Teilen überprüft, ob eine Option ausgewählt wurde. Die angegebene E-Mail-Adresse wird genauso nach Syntax verifiziert. Bei nicht Einhaltung der Syntax erscheint eine Fehlermeldung, dass die Adresse nicht korrekt ist. 41 5 Prototyp: Cloudverwaltung CProperties Dieses Eigenschaften-Fenster erscheint beim Betätigen des Kontextmenüs Eigenschaften“ ” in CCloudverwaltung. Hier werden alle Eigenschaften über das hochgeladene Dokument auf der Cloud angezeigt. CSendMail ist zuständig für das Senden von Infomails an Verwalter beim Hochladen einer Datei in CUpload bzw. Empfänger beim Teilen einer Datei in CShare. CDatabaseConnection baut die Verbindung zur Datenbank mit dem Singleton Erzeugungsmuster[14, Seite 262271] auf. CDatabase Diese Schnittstelle enthält die Verbindung zur Datenbank aus der Klasse CDatabaseConnection und definiert die Funktionen, die für die verschiedenen Datenbankabfragen nötig sind. CDropboxDatabase implementiert die Schnittstelle CDatabase und fragt die Daten aus der Tabelle Dropbox“ ” ab. CGoogleDriveDatabase implementiert die Schnittstelle CDatabase und fragt die Daten aus der Tabelle Google” Drive“ ab. COneDriveDatabae implementiert die Schnittstelle CDatabase und fragt die Daten aus der Tabelle OneDrive“ ” ab. CUploadedDocuments Diese Klasse beinhaltet die Verbindung zur Datenbank aus der Klasse CDatabaseConnection und ist für die Abfragen aus der Tabelle UploadedDocuments“ zuständig. Dabei ” werden Daten aus dieser Tabelle gelesen, die Daten in dieser Tabelle gelöscht und aktualisiert. 42 5.2 Library 5.1.2 Evaluierung Die Evaluation des Programms erfolgte durch Funktionstests. Der funktionale Test überprüft die Funktionseinheiten, ob diese den Spezifikationen von Advokat (in Anhang A) entsprechen. Funktionstests treten als Endprüfung nach der Fertigung der Funktionseinheit ein. Dabei wird ausgetestet, ob unerwünschte Reaktionen vom Programm durch Aufrufen der Funktionen auftritt. Die Ereignisse, die nicht entstehen dürfen, sind genauso Teile der funktionalen Anforderung. Neben dem Funktionstest wurde auch nach Beendigung des Programms eine Softwareüberprüfung durchgeführt, der durch Tests von der Advokat Produkt-Managerin erfolgte. Dabei überprüfte sie die Anforderungen und misste die Qualität des Programms ab. Nach den Testergebnissen wurden die Fehler behoben. Somit konnte der Prototyp intern in Advokat präsentiert werden und war für die Übernahme bereit. 5.2 Library Die Library ist einer der Hauptteile unserer Arbeit und ist die Komponente, die ohne Veränderungen in das Advokat-Programm integriert wird. Daher wird von ihr eine genaue Dokumentation und ein hohes Maß an Software-Qualität gefordert. Software-Qualität wird unter anderem wie folgt definiert: Software-Qualität ist die Gesamtheit der Merkmale und Merkmalswerte ” eines Software-Produkts, die sich auf dessen Eignung beziehen, festgelegte Erfordernisse zu erfüllen.“[12, Seite 6] 5.2.1 Anforderungen an die Software Die Anforderungen an die Library orientieren sich in diesem Unterpunkt an der internationalen Norm ISO/IEC 25000 Systems and software engineering“ und deren Vorgänger ” ISO 9126“.1 Im Speziellen werden die internen und externen Qualitäten hervorgehoben ” [12, Seite 6-12]. Funktionalität Es gibt lediglich eine Klasse (CloudFactory) und ein Interface (CloudInteface), die die Advokat-Entwickler kennen müssen, um die Library verwenden zu können. Andere Klassen, wie z. B. DocumentInfo, TokenInfo oder LoginDelegate haben entweder die Aufgabe Daten zusammenzufassen (zu kapseln), um sie leichter an anderen Methoden übergeben zu können oder sind Delegate-Interfaces, die vom Entwickler implementiert werden müssen, damit er über zeitlich unabhängige Ereignisse informiert wird. Zum Beispiel besitzt das Interface LoginDelegate die Methode LoginInformationGotUpdated , die aufgerufen wird, sobald das AccessToken (siehe Kapitel 4.6) abläuft. 1 ISO/IEC 25000, http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm? csnumber=64764, 19. März 2016 43 5 Prototyp: Cloudverwaltung Zuverlässigkeit Wie in Abbildung 5.6 ersichtlich, besitzt die Klasse CloudService zu jeder vom Interface geforderten Methode, eine Funktion, die alle Übergabe-Parameter überprüft. Diese Funktionen sind mit dem Präfix Check[TheOriginallyCalledFunktion] zu erkennen. Andere Methoden, wie z. B. CheckToken , werden wiederum von den anderen Check-Methoden aufgerufen und müssen von den abgeleiteten Klassen erst implementiert werden. Um das so genannte Exception-Handling 2 zu verbessern, werden Ausnahmen an verschiedenen Programmstellen abgefangen, in der Klasse CloudException gebündelt und darauf weiter verarbeitet. Zusätzlich besitzt jede zurückgegebene Fehlermeldung eine speziell für die Funktion definierte Nachricht, die dem Anwalt in einem Fehlerfenster angezeigt werden kann. Verwendbarkeit Um die Library möglichst einfach in Advokat integrieren zu können, darf die Library an sich keine Datenbankanbindung besitzen. Alle Parameter, die gespeichert werden müssen, werden daher entweder von den aufgerufenen Funktionen zurückgegeben oder es werden die an die Funktion übergebenen Parameter, welche als Referenz übergeben werden, entsprechend mit neuen Werten versehen. Diese Tatsache wird von der Testanwendung, die von der Library zurückbekommene Object-Instanzen in die Datenbank speichert, veranschaulicht. Der Leser beachte also, dass die Testanwendung sehr wohl ein klassisches Dreischichten Model (siehe [14, Seite 300]) darstellt, jedoch delegiert die Anwendungsschicht viele Operationen an die Library weiter. Die Library implementiert somit nur Funktionen, und besitzt keine graphischen oder persistenten Komponenten. Effizienz Da sämtliche API-Aufrufe im Hintergrund aus HTTP-An und Abfragen bestehen, ist es wichtig stets neue Threads zu erstellen, um den Entwicklern von Advokat die Möglichkeit zu geben, die Wartezeiten mit sinnvollen Operationen zu überbrücken. Threads sind Programmteile, die gleichzeitig mit anderen Teilen des Programms ausgeführt werden können. Das verhindert, dass beim Warten auf eine HTTP-Antwort des Servers, die graphische Oberfläche der Testanwendung nicht mehr auf Benutzereingaben reagieren kann. Unser Programm gibt daher, nachdem mögliche fehlerhafte Parameterübergaben überprüft wurden, einen bereits gestarteten Thread zurück, auf den mittels des Await-Operator gewartet werden kann. Jede Methode, die den Await-Operator verwendet, muss mit dem Modifizierer Async gekennzeichnet werden. Sie gibt dem Kompilier die Möglichkeiten anderen Code nebenher auszuführen und später zu der Zeile mit dem Await-Aufruf zurückzukehren.3 2 3 Exception handling: https://en.wikipedia.org/wiki/Exception_handling, 19. März 2016 Asynchrone Programmierung mit VB.NET, https://msdn.microsoft.com/de-de/library/hh191564. 44 5.2 Library 5.2.2 Dokumentation In diesem Unterpunkt werden die verschiedenen Klassen und Interfaces dokumentiert und deren Zusammenhänge werden in Abbildung 5.6 dargestellt. Ein brauner Pfeil von Klasse A zu Klasse B, der auch noch ein Schraubenschlüssel-Symbol besitzt, bezeichnet ein Attribut in Klasse B vom Klassentyp A. Die Benennung der Variable erfährt der Leser durch den Text neben dem Schraubenschlüssel-Symbol. Ein brauner Pfeil ohne Schraubenschlüssel-Symbol, deutet auf eine Beziehung zwischen zwei Klassen hin. Meistens spielen dabei die Übergabeparameter oder der zurückgegebene Wert eine Rolle. Genaueres kann durch die Info-Boxen, durch die der Pfeil läuft, erfahren werden. Ein grauer Pfeil, dessen Spitze ein Dreieck formt, wird bei Vererbungen eingesetzt. Dabei erbt die Klasse von dem der Pfeil ausgeht von der Klasse auf den der Pfeil zeigt. Die Klassen besitzen ebenso verschiedene Farben und Kennzeichnungen. Eine orange Modul-Klasse steht für eine Komponente, welche mehrere Klassen und Interfaces zusammenfasst und abstrahiert. Grüne Klassen bezeichnen Schnittstellen, die von allen Klassen implementiert werden, die auf ihrer Oberseite einen Strich mit einem Kreis besitzen. Der Name der grünen Klasse muss mit der Bezeichnung neben dem Kreis übereinstimmen. Der Rest sind Enumerations (in Violett) und normale Klassen (in Blau), die Methoden und Attribute besitzen. CloudInterface Diese Schnittstelle definiert alle Funktionen, die von der Benutzeroberfläche gebraucht werden, um die geforderten Anwendungsfälle zu implementieren. Zusätzlich wird mit dem Enumeration Policy der Zustand des Dokuments, in Bezug auf die Freigabe für andere Nutzer bezeichnet. CloudService implementiert die Schnittstelle CloudInterface, wenn auch nur mit Methoden, in denen eine NotImplemented-Ausnahme geworfen wird. Des Weiteren besitzt die Klasse Methoden, mit denen die Übergabeparameter überprüft werden können. Die Klassen GoogleDriveService, DropboxService und OneDriveService erben von dieser Klasse. CloudFactory Diese Klasse wird von der Benutzeroberfläche verwendet, um eine CloudInterface Instanz zu erhalten. Welcher Cloud-Dienst dabei verwendet werden soll, wird mit einem Übergabeparameter von Typ CloudService festgelegt. Das Enum für diesen Parameter befindet sich ebenso in dieser Klasse. Der Leser beachte, dass die Klasse CloudFactory dem Entwurfsmuster der Fabrikmethode ähnelt [14, Seite 243-250]. aspx, 25. März 2016 45 5 Prototyp: Cloudverwaltung 46 Abbildung 5.6: Übersicht über die Library als Klassen-Diagramm 5.2 Library TokenInfo wird verwendet, um die verschiedenen Anmelde-Zeichenfolgen zusammenzufassen. Dazu zählen das Access Token, Refresh Token und andere Werte die in 4.6 erklärt wurden. DocumentInfo besitzt Werte, um die hochgeladen Dokumente zu identifizieren. Dabei müssen nicht alle Werte gesetzt werden, da andere Clouddienste wie z. B GoogleDrive nur mit den Id’s arbeiten. Die Variable Parent vom Typ DocumentInfo bezeichnet den Ordner, in dem das Dokument sich momentan online. SharedInfo fasst die nötigen Attribute zusammen, die benötigt werden, um ein Dokument zu teilen. ProfilInfo beinhaltet die wichtigsten Informationen des angemeldeten Benutzers und kann mit der Methode getProfilInfo() abgefragt werden. CloudException übernimmt die Eigenschaften der Basisklasse Exception. Alle Ausnahmen, die von den unterschiedlichen Klassen geworfen werden, sind vom Typ CloudException. Meistens wird darin sowohl eine Nachricht als auch eine zusätzliche Ausnahme gespeichert. Z. B. werden abgefangene Ausnahmen in diese Klasse hinein gespeichert. LoginDelegate ist eine Schnittstelle, die in der Benutzeroberfläche eingefügt werden muss. Sie wird an die Methode createCloudService in CloudFactory mit übergeben und in der erstellten CloudService-Instanz gespeichert. Um diese Klasse zu erstellen, muss momentan lediglich die Methode LoginInformationGotUpdated(TokenInfo As TokenInfo) implementiert werden. Diese Funktion wird immer dann aufgerufen, sobald sich das Access Token in der CloudServiceAPI ändert. WindowDelegate ist ein Interface mit zwei Methoden Show() und Close() und wird in der AnmeldeMethode (AuthentificationAsync) gebraucht, falls noch kein Access Token in Form der Klasse TokenInfo vorliegt. Diese Methoden sagen der Benutzeroberfläche, ab wann sie das Browserfenster anzeigen oder schließen soll. 47 5 Prototyp: Cloudverwaltung MyDataStore ist eine Klasse, die das von Google geforderte Interface IDataStore implementiert. Die Methoden in der Schnittstelle werden von der Google Drive API aufgerufen, sobald sich das AccessToken ändert. Darum steht diese Klasse in Zusammenhang mit dem LoginDelegate der CloudService-Klasse. GoogleDriveService, DropboxService und OneDriveService implementieren die vorgegeben Stub-Methoden4 der Basisklasse CloudService. 5.3 Dynamic Link Library DLL steht für Dynamic-Link Libraries und sind Dateien die unter Windows höchstens einmal in den Arbeitsspeicher geladen werden. Die in den geladenen Dateien integrierten Funktionen können dabei von den anderen Programmen verwendet werden. In unserem Fall benützt die Testanwendung nur die DLL’s, die beim Kompilieren der Library entstehen.5 Der Vorteil für externe Entwickler ist, dass Funktionen, die nur intern in den DLL verwendet werden, verschleiert werden können. Dadurch sieht er nur die Funktionen, die für ihn wichtig sind. Es ist jedoch zu beachten, dass DLL’s, die nicht obfuscated6 wurden, mit Programmen wie dotPeek 7 von jetbrains in ihren Quell-Code zurück verwandelt werden können. 5.4 Datenbank Die Datenbank ist für das Programm Cloudverwaltung“ ein wichtiges Bestandteil. ” Um wichtige Daten zu speichern wurde Access verwendet. Access 8 ist eine DatenbankAnwendung und gehört zur Microsoft Office Familie. Diese Anwendung unterstützt die Datenbank-Programmiersprache SQL. Für das Verwenden und Verstehen von AccessDatenbanken ist es nicht nötig ein Progammierer zu sein. Die Oberfläche ist sehr benutzerfreundlich und selbsterklärend, sodass es für Tester einfach ist, die Datenbank zu kontrollieren oder Daten dort zu verwalten. Die Access-Datenbank enthält vier Tabellen, nämlich die Tabellen für die einzeilnen Cloud-Dienste und für hochgeladene Dokumente. 4 Eine Stub-Methode ist eine Funktion, die noch nicht wirklich entwickelt wurde. Siehe dazu https: //de.wikipedia.org/wiki/Stub_%28Programmierung%29 5 Dynamic-Link Libraries: https://msdn.microsoft.com/en-us/library/windows/desktop/ ms682589%28v=vs.85%29.aspx, 20. März 2016 6 Obfuskation (engl. für verwirren) bezeichnet einen nachträglichen Schritt, der DLL’s soweit verändert, dass beim Dekompilieren der DLL-Datei kaum Rückschlüsse auf den Original-Code geschlossen werden können. Siehe auch https://de.wikipedia.org/wiki/Obfuskation 7 dotPeek: https://www.jetbrains.com/decompiler/, 20. März 2016 8 Access: https://products.office.com/en-us/access, 21. März 2016 48 5.4 Datenbank Die Cloud-Tabellen besitzen verschiedene Felder, da jeder der Cloud-Dienste unterschiedliche Anmeldedaten, wie Access-Token, Secret, etc., für die Authentifizieren erfordern. In Abbildung 5.7 sind die Tabellen mit den dazugehörigen Feldern zu sehen. Wie abgebildet, benötigt Google Drive mehr Daten für die Authentifizierung. Diese sind das Accesstoken, Tokentype, Expires in, Refreshtoken und Issued. Dropbox hingegen braucht nur das Accesstoken und das Secret. OneDrive erfordert nur das Accesstoken und das Refreshtoken. In der Tabelle UploadedDocuments“ sind die Dokumente gespeichert, ” Abbildung 5.7: Die Cloud-Dienst Tabellen mit den Feldern die vom Programm auf die Cloud hochgeladen wurden. Die Abbildung 5.8 zeigt die Felder dieser Tabelle an. Für die WPF-Anwendung ist es nötig zu wissen, welche Daten hochgeladen wurden, um diese dann mit dem dazugehörigen Cloud-Logo zu versehen. Deshalb wird der Dokumentname und das Clouddienst hinterlegt. Für das Verwalten von den Funktionalitäten des Programms, wie das Herunterladen, Teilen und Löschen von Dokumenten, sind die DokumentID, der Pfad der Datei auf der Cloud, der FolderID, die Berechtigung und der Emfpänger wichtig. Diese Daten sind also erforderlich um mittels der Library die Dokumente zu verwalten. Um die Eigenschaften einer hochgeladenen Datei anzusehen, wie in Abschnitt 5.1 vorgestellt, ist es genauso nötig den privaten Link der Datei und den geteilten Link in die Datenbank zu speichern. Um später den Account des hochgeladenen Dokuments zu wissen, ist es genauso bedeutsam die E-mail-Adresse in die Datenbank abzulegen. Die Verbindung zur Datenbank erfolgt mit Hilfe von ADO.NET. Diese ermöglicht eine einfache Verwaltung der Datenbank mittels Code zu erstellen. Für das einmalige Erstellen einer Datenbank-Verbindung wurde ein Singleton Entwurfsmuster[14, Seite 262-271] verwendet, um nicht bei jeder verschiedenen Tabelle eine andere Verbindung einzurichten. Die Datenbank-Abfragen werden mit SQL erstellt und dem Datenadapter übergeben. Der Adapter empfängt das Ergebnis der Abfrage und speichert es in die sogenannte DataTable. Diese Tabelle ist jedoch nicht in einer Verbindung mit der Datenbank, sie kann also als eine Cache-Tabelle angesehen werden. Aus dieser Tabelle werden dann die nötigen Informationen für das Programm entnommen. 49 5 Prototyp: Cloudverwaltung Abbildung 5.8: Die Tabelle UploadedDocuments“ mit den Feldern ” 5.5 Zusammenfassung Dieses Kapitel beschäftigt sich mit der WPF-Anwendung, die im Rahmen dieses Projekts erstellt wurde. Dabei wird die Benutzeroberfläche in Detail beschrieben und die Verwendung dieser mit den zu beachtenden Punkten erklärt. Anschließend wird die Library eingeführt und die Vorteile dieser in Unterpunkten wiedergegeben. Die erstellte Library für die Funktionalität der Benutzeroberfläche wird kurz mit den Klassennamen zusammengefasst. Als nächstes wird die DLL mit dem Vorteil vorgestellt. Zum Schluss wird über die verwendete Datenbank für das Speichern der nötigen Daten für die Anwendung informiert. 50 6 Anwendungsfälle In diesem Kapitel werden in Abschnitt 6.1 die Akteure beschrieben und in Abschnitt 6.2 bis 6.6 werden die einzelnen Anwendungsfälle, die von Advokat vorgegeben wurden, wiedergegeben. 6.1 Akteure Rechtsanwalt/in Rechtsanwälte, wird mit RA abgekürzt, haben alle Rechte, wie Dateien auf die jeweilige Cloud hochzuladen, zu teilen und sie wieder aus der Cloud zu löschen. Sekretär/in Wie Rechtsanwälte hat dieser Akteur auch die Rechte eine Datei hochzuladen, zu teilen und sie aus der Cloud zu entfernen. Um der/die Sekretär/in diese Aktionen durchführen kann, müssen die Anmeldedaten vom/von der Rechtsanwalt/in in der Datenbank hinterlegt sein. Diese Akteure werden auch Sachbearbeiter genannt und als SB gekürtzt. 6.2 Anwendungsfall 1: Außendienst, schreibender Zugriff Der RA ruft in der Kanzlei an und verlangt ein bestimmtes Dokument, somit markiert die Sekretärin (SB) das Dokument in Advokat für die externe Bearbeitung. Andernfalls kann der RA selbst das Dokument für das bevorstehende Arbeiten in Advokat markieren. Advokat macht das Dokument daraufhin in der Cloud verfügbar. Nach der Bearbeitung wird die Markierung manuell in der Kanzlei wieder entfernt und das überarbeitete Dokument wird wieder in den Advokat Datenbestand übernommen. Das Dokument wird nur von diesem RA bearbeitet. Während es extern verfügbar gemacht ist, wird es daher im Advokat Datenbestand für die Bearbeitung gesperrt. Vorbedingungen • Die Cloud-Login Informationen sind in den Stammdaten des RA hinterlegt. • Syncfolder ist unter dem PC eingerichtet. • Word ist auf dem PC installiert. • Cloudapp auf dem mobilen Gerät eingerichtet. 51 6 Anwendungsfälle • Unter Google Drive: – Google Docs eingerichtet auf dem mobilen Gerät. • Unter OneDrive und Dropbox: – Word eingerichtet auf dem mobilen Gerät. Schritte • Rechtsklick auf das Dokument oder auf den Ordner → Hochladen • Fenster Dokument Hochladen“ ” – Cloud-Dienst aussuchen. – Account, unter dem das Dokument hochgeladen werden soll, auswählen. – Gegebenenfalls Benachrichtigungstext angeben – (Bestätigen) • Das Dokument wird unter dem angegebenen Cloud-Konto hochgeladen. • Bearbeiten des Dokuments (Beste Lösung) – Unter Google Drive / Dropbox / OneDrive am Computer: ∗ Der RA öffnet den Syncfolder auf dem PC und navigiert in den Advokat Ordner. ∗ Er wählt das Dokument aus → Rechte Maustaste → öffnen ∗ Der RA bearbeitet das Dokument und speichert es anschließend ab. – Google Docs unter IOS / Android für Google Drive: ∗ Der RA öffnet die Docs App → OrdnerIcon (→ Android öffnen von Google Drive) ∗ Er navigiert in den Advokat Ordner. ∗ Er wählt das Dokument aus und bearbeitet es. ∗ Nach dem Bearbeiten klickt er links oben auf das BestätigungsIcon. – Word unter IOS / Android für OneDrive und Dropbox: ∗ Der RA öffnet die Word App ∗ Öffnen → OneDrive/Dropbox → Advokat Ordner ∗ Das Dokument wird geöffnet und kann nun bearbeitet werden. ∗ Nach dem Bearbeiten klickt er links oben auf das ZurückIcon (auf IOS) oder klickt oben auf das SpeichernIcon (auf Android). • Bearbeiten des Dokuments (Alternative Lösung) – Google Drive App unter IOS: 52 6.3 Anwendungsfall 2: Außendienst, lesender Zugriff ∗ Der RA öffnet die App Drive und navigiert in den Advokat Ordner. ∗ MehrIcon (rechts vom Dokument) → Öffnen in → Öffnen in → In Docs öffnen. ∗ Er kann das Dokument jetzt bearbeiten. ∗ Nach dem Bearbeiten klickt er links oben auf das BestätigungsIcon. – OneDrive App unter IOS / Android: ∗ Der RA öffnet die OneDrive App und navigiert in den Advokat Ordner. ∗ Öffnen des Dokuments: · Er wählt das Dokument aus und klickt auf das MehrIcon → Öffnen in anderen Apps → In Word öffnen · Er wählt das Dokument aus und es wird in der Word App geöffnet ( In Office Apps öffnen“ voreingestellt) ” ∗ Der RA bearbeitet das Dokument. ∗ Nach dem Bearbeiten klickt er links oben auf das ZurückIcon (auf IOS) oder klickt oben auf das SpeichernIcon (auf Android). – Dropbox App unter IOS / Android: ∗ Der RA öffnet die Dropbox App und navigiert in den Advokat Ordner. ∗ Dokument auswählen: · IOS: Er wählt das Dokument aus → BearbeitenIcon (unten) → Microsoft Word · Android: DropDownIcon → Öffnen mit → Word ∗ Das Dokument wird geöffnet und der RA bearbeitet es. ∗ Nach dem Bearbeiten klickt er links oben auf das ZurückIcon (auf IOS) oder klickt oben auf das SpeichernIcon (auf Android). • RA beendet Arbeit an Dokument. • Das Dokument wird aus der Cloud entfernt – Das Dokument wird heruntergeladen. – Das Cloud-Logo wird entfernt. – Das Dokument wird aus der Cloud gelöscht. 6.3 Anwendungsfall 2: Außendienst, lesender Zugriff RA wird von einem Kunden kontaktiert und möchte in ein Dokument Einsicht nehmen. Er markiert das gewünschte Dokument in Advokat und hat es in wenigen Minuten in seinem Online Speicher zur Verfügung. Er liest es auf seinem Smartphone bzw. seinem 53 6 Anwendungsfälle Tablet. Im Advokat Datenbestand wird vermerkt, dass das Dokument extern verfügbar gemacht wurde. Nach der Einsichtnahme wird die Markierung manuell wieder entfernt, wodurch das Dokument in der Cloud gelöscht wird. Vorbedingungen • Die Cloud-Login Informationen sind in den Stammdaten des RA hinterlegt. • Syncfolder ist unter dem PC eingerichtet. • Word ist auf dem PC installiert. • Cloudapp auf dem mobilen Gerät eingerichtet. Schritte • Rechtsklick auf das Dokument oder auf den Ordner → Hochladen • Fenster Dokument Hochladen“ ” – Cloud-Dienst aussuchen. – Account, unter dem das Dokument hochgeladen werden soll, auswählen. – Gegebenenfalls Benachrichtigungstext angeben – (Bestätigen) • Das Dokument wird unter dem angegebenen Cloud-Konto hochgeladen. • Ansicht auf das Dokument – Unter Google Drive / Dropbox / OneDrive am Computer: ∗ Der RA öffnet den Syncfolder auf dem PC und navigiert in den Advokat Ordner. ∗ Er wählt das Dokument aus → Rechte Maustaste → öffnen ∗ Der RA kann nun das Dokument betrachten. – Google Drive / Dropbox / OneDrive App unter IOS und Android: ∗ Der RA öffnet die App und navigiert in den Advokat Ordner. ∗ Er klickt auf das Dokument und hat eine Ansicht auf dessen Inhalt. Hinweis: Unter Google Drive öffnet sich sonst die Vorschau in Google Docs falls jenes installiert ist. Unter OneDrive öffnet sich die Vorschau in Word falls jenes installiert und In Office Apps öffnen“ voreingestellt ist. ” • RA beendet Ansicht auf das Dokument. • Das Dokument wird aus der Cloud entfernt – Das Dokument wird heruntergeladen. 54 6.4 Anwendungsfall 3: Außendienst, Bearbeitung offline – Das Cloud-Logo wird entfernt. – Das Dokument wird aus der Cloud gelöscht. 6.4 Anwendungsfall 3: Außendienst, Bearbeitung offline Der RA möchte ein Dokument im Zug bearbeiten, die Internet-Verbindung ist sehr instabil. Er lädt das Dokument daher auf sein Laptop und bearbeitet es offline. Erst nach der Dienstreise synchronisiert er es wieder mit der Cloud. Um sicherzustellen, dass während seiner Bearbeitung keine Änderungen durch andere SBs vorgenommen werden, sperrt er das Dokument (in Advokat) für Bearbeitung. Vorbedingungen • Die Cloud-Login Informationen sind in den Stammdaten des RA hinterlegt. • Syncfolder ist unter dem PC eingerichtet. • Word ist auf dem PC installiert. • Cloudapp auf dem mobilen Gerät eingerichtet. • Unter Google Drive: – Google Docs eingerichtet auf dem mobilen Gerät. • Unter OneDrive und Dropbox: – Word eingerichtet auf dem mobilen Gerät. Schritte • Rechtsklick auf das Dokument oder auf den Ordner → Hochladen • Fenster Dokument Hochladen “ ” – Cloud-Dienst aussuchen. – Account, unter dem das Dokument hochgeladen werden soll, auswählen. – Gegebenenfalls Benachrichtigungstext angeben – (Bestätigen) • Das Dokument wird unter dem angegebenen Cloud-Konto hochgeladen. • Offline Bearbeitung des Dokuments (Beste Lösung) – Unter Google Drive / Dropbox / OneDrive am Computer: ∗ Der RA öffnet den Syncfolder auf dem PC und navigiert in den Advokat Ordner. 55 6 Anwendungsfälle ∗ Der RA öffnet den Syncfolder auf dem PC und navigiert in den Advokat Ordner. ∗ Er wählt das Dokument aus → Rechte Maustaste → Öffnen ∗ Er wählt das Dokument aus → Rechte Maustaste → Öffnen ∗ Der RA bearbeitet das Dokument und speichert es anschließend ab. – Google Docs unter IOS / Android für Google Drive: ∗ Der RA öffnet die Docs App → OrdnerIcon (→ Android öffnen von Google Drive) ∗ Er navigiert in den Advokat Ordner. ∗ Er wählt das Dokument aus → MehrIcon → Offline speichern ∗ Nun wird das Dokument bearbeitet. ∗ Nach dem Bearbeiten klickt er links oben auf das BestätigungsIcon. – Word unter IOS / Android für OneDrive und Dropbox: ∗ Der RA öffnet die Word App ∗ Öffnen → OneDrive/Dropbox → Advokat Ordner ∗ Das Dokument wird geöffnet und gleichzeitig heruntergeladen. Hinweis: Beim öffnen des Dokuments ohne Internetzugriff erscheint eine Anmerkung, dass das Dokument momentan offline ist. Zum Bearbeiten klickt der RA neben dieser Anmerkung auf Bearbeiten. ∗ Nun kann das Dokument auch ohne Internetzugriff bearbeitet werden. ∗ Nach dem Bearbeiten klickt er links oben auf das ZurückIcon (auf IOS) oder klickt oben auf das SpeichernIcon (auf Android). • Offline Bearbeitung des Dokuments (Alternative Lösung) – Google Drive App unter IOS / Android ∗ Der RA öffnet die App und navigiert in den Advokat Ordner. ∗ MehrIcon (rechts vom Dokument) → Offline speichern ∗ MehrIcon (rechts vom Dokument) → Öffnen in → Öffnen in → In Docs öffnen. ∗ Er kann das Dokument jetzt bearbeiten. ∗ Nach dem Bearbeiten klickt er links oben auf das BestätigungsIcon. – OneDrive App unter IOS / Android: ∗ Der RA öffnet die OneDrive App und navigiert in den Advokat Ordner. ∗ Öffnen des Dokuments: · Er wählt das Dokument aus und klickt auf das MehrIcon → Öffnen in anderen Apps → In Word öffnen 56 6.5 Anwendungsfall 4: Teilen mit Partnern · Er wählt das Dokument aus und es wird in der Word App geöffnet ( In Office Apps öffnen“ voreingestellt) ” ∗ Das Dokument wird geöffnet und gleichzeitig heruntergeladen. Hinweis: Beim öffnen des Dokuments ohne Internetzugriff erscheint eine Anmerkung, dass das Dokument momentan offline ist. Zum Bearbeiten klickt der RA neben dieser Anmerkung auf Bearbeiten. ∗ Nun kann das Dokument auch ohne Internetzugriff bearbeitet werden. ∗ Nach dem Bearbeiten klickt er links oben auf das ZurückIcon (auf IOS) oder klickt oben auf das SpeichernIcon (auf Android). – Dropbox App unter IOS / Android: ∗ Der RA öffnet die Dropbox App und navigiert in den Advokat Ordner. ∗ Dokument auswählen → DropDownIcon → Offline verfügbar machen ∗ Dokument öffnen mit Word: · IOS: Er wählt das Dokument aus → BearbeitenIcon (unten) → Microsoft Word · Android: DropDownIcon → Öffnen mit → Word ∗ Das Dokument wird geöffnet und gleichzeitig heruntergeladen. Hinweis: Beim öffnen des Dokuments ohne Internetzugriff erscheint eine Anmerkung, dass das Dokument momentan offline ist. Zum Bearbeiten klickt der RA neben dieser Anmerkung auf Bearbeiten. ∗ Nun kann das Dokument auch ohne Internetzugriff bearbeitet werden. ∗ Nach dem Bearbeiten klickt er links oben auf das ZurückIcon (auf IOS) oder klickt oben auf das SpeichernIcon (auf Android). • RA beendet Arbeit an Dokument und das Dokument wird in die Cloud synchronisiert, sobald er Internetzugriff hat. • Das Dokument wird aus der Cloud entfernt – Das Dokument wird heruntergeladen. – Das Cloud-Logo wird entfernt. – Das Dokument wird aus der Cloud gelöscht. 6.5 Anwendungsfall 4: Teilen mit Partnern Der RA gibt ein Dokument für einen lesenden Zugriff frei. Es wird ein URL-Link erstellt mit dem es dem externen Partner möglich ist das Dokument über die Cloud zu öffnen und Einsicht zu nehmen. Sobald der Partner die Einsichtnahme abgeschlossen hat, ist es über Advokat möglich den Link zu widerrufen und das Dokument aus der Cloud zu löschen. Da keine Änderungen am Dokument vorgenommen wurden, muss nach dem Löschen keine weiteren Schritte unternommen werden. 57 6 Anwendungsfälle Vorbedingungen • Die Cloud-Login Informationen sind in den Stammdaten des RA hinterlegt. • Die E-Mail-Adresse des externen Partners ist bekannt. Schritte • Rechtsklick auf das Dokument oder auf den Ordner → Hochladen • Fenster Dokument Hochladen“ ” – Cloud-Dienst aussuchen. – Account, unter dem das Dokument hochgeladen werden soll, auswählen. – Gegebenenfalls Benachrichtigungstext angeben – (Bestätigen) • Rechtsklick auf das Dokument oder auf den Ordner → Teilen • Fenster Dokument Teilen“ ” – Berechtigungen einstellen: Lesezugriff ohne Authentifizierung oder mit Authentifizierung – Für Lesezugriff mit Authentifizierung die E-Mail-Adresse des Partners wird angegeben. – (Optional) E-Mail senden auswählen. – Gegebenenfalls Benachrichtigungstext der in der E-Mail erscheint angeben. – (Bestätigen) • Es wird eine E-Mail mit dem Link zu dem Dokument versendet falls ausgewählt oder der RA übergibt dem Partner den Link mittels einer anderen Methode. • Der Partner öffnet das Dokument mit dem PC / IOS / Android: – Er bekommt die E-Mail und klickt auf den Link. – Es öffnet sich im Standartbrowser eine Webseite mit dem Dokument als Vorschau. – Zum genaueren Betrachten kann das Dokument heruntergeladen werden. • RA beendet Bereitstellung. • Das Dokument wird aus der Cloud entfernt – Das Dokument wird heruntergeladen. – Das Cloud-Logo wird entfernt. – Das Dokument wird aus der Cloud gelöscht. 58 6.6 Anwendungsfall 5: Kollaboration mit Partnern 6.6 Anwendungsfall 5: Kollaboration mit Partnern Der RA markiert das Dokument für die externe Bearbeitung und vergibt entsprechende Berechtigungen für den Partner. Advokat stellt das Dokument extern zur Verfügung und generiert eine URL, über die das Dokument in der Cloud durch den Partner geöffnet werden kann. Vorbedingungen • Die Cloud-Login Informationen sind in den Stammdaten des RA hinterlegt. • Die E-Mail-Adresse des externen Partners ist bekannt. • Cloudapp auf dem mobilen Gerät eingerichtet. • Unter Google Drive: – Google Docs eingerichtet auf dem mobilen Gerät. • Unter OneDrive und Dropbox: – Word eingerichtet auf dem mobilen Gerät. Schritte • Rechtsklick auf das Dokument oder auf den Ordner → Hochladen • Fenster Dokument Hochladen“ ” – Cloud-Dienst aussuchen. – Account, unter dem das Dokument hochgeladen werden soll, auswählen. – Gegebenenfalls Benachrichtigungstext angeben – (Bestätigen) • Rechtsklick auf das Dokument oder auf den Ordner → Teilen • Fenster Dokument Teilen“ ” – Berechtigung einstellen: Lese- und Schreibzugriff – E-Mail Adresse des Partners wird angegeben. – (Optional) E-Mail senden auswählen. – Gegebenenfalls Benachrichtigungstext der in der E-Mail erscheint angeben. – (Bestätigen) • Ein neuer Ordner wird erstellt und mit dem angegebenen Cloud Account geteilt. • Das Dokument wird in den neu erstellten Ordner hinzugefügt. 59 6 Anwendungsfälle • Es wird eine automatisch generierte E-Mail mit dem Link zum Ordner oder zusätzlich eine E-Mail vom Programm versendet. • Der Partner bearbeitet das Dokument online: – Google Drive am PC: ∗ Der Partner wechselt auf die Drive Seite und muss sich gegebenenfalls anmelden. (falls nicht schon angemeldet) ∗ Für mich Freigegeben → [Ordner Name] → Doppelklick auf das Dokument. ∗ Es wird auf öffnen geklickt und der Browser wechselt auf die Google Docs Webseite. ∗ Der Partner kann das Dokument bearbeiten. Hinweis: Sollte gleichzeitig auch der Anwalt das Dokument bearbeiten wollen, empfiehlt es sich auch Google Docs zu verwenden, da dort es zu keine Sync-Konflikte kommt. – Google Drive am PC (mit zuerst herunterladen und dann hochladen): ∗ Der Partner wechselt auf die Drive Seite und muss sich gegebenenfalls anmelden. (falls nicht schon angemeldet) ∗ Für mich Freigegeben → [Ordner Name] → Rechte Maustaste auf das Dokument → Herunterladen ∗ Der Partner kann das Dokument mit einem beliebigen Programm bearbeiten. ∗ Nach der Bearbeitung wird das Dokument hochgeladen: · Drive Seite → Für mich Freigegeben → [Ordner Name] → NEU → Dateien hochladen → Datei vom PC auswählen → öffnen · Das Dokument wird hochgeladen. – Google Drive am PC (mit Syncfolder): ∗ Der Partner bekommt eine E-Mail mit Link auf den Ordner. ∗ Er klickt auf den Link und es öffnet sich ein neues Browser Fenster. ∗ Der Partner muss sich gegebenenfalls anmelden. (falls nicht schon angemeldet) ∗ Es wird der Inhalt des Ordners sichtbar. ∗ Um den Ordner zum Syncfolder hinzuzufügen: · Oben auf Zu Google Drive hinzufügen“ klicken. ” · Der Ordner ist nun im Syncfolder des PC ∗ Der Partner öffnet den Syncfolder → öffnet den neu synchronisierten Ordner → öffnet das Dokument mit einem beliebigen Programm. – OneDrive am PC: 60 6.6 Anwendungsfall 5: Kollaboration mit Partnern ∗ In der erhaltenen Email wird auf den Link geklickt. ∗ Der Partner muss sich gegebenenfalls anmelden (falls nicht schon angemeldet). ∗ Der Partner klickt oben auf In OneDrive hinzufügen“. ” ∗ Nun ist der freigegebener Ordner in seinem OneDrive Ordner zu sehen und er wählt das Dokument aus. ∗ Die Vorschau des Dokuments öffnet sich. ∗ Dokument Bearbeiten → In Word Online Bearbeiten ∗ Word Online wird geöffnet und der Partner kann das Dokument bearbeiten. – Dropbox am PC: ∗ In der erhaltenen Email wird auf den Link geklickt. ∗ Der Partner muss sich gegebenenfalls anmelden. (falls nicht schon angemeldet) ∗ Er klickt auf Annehmen. ∗ Der Ordner ist nun in seinem Dropbox gespeichert. ∗ Er wählt das Dokument aus und die Vorschau öffnet sich. ∗ Es wird auf öffnen geklickt und Word Online wird geöffnet. ∗ Der Partner kann das Dokument bearbeiten. Hinweis: Falls das Dokument gleichzeitig bearbeitet wird, wird ein neues Dokument mit dem gleichen Namen + Conflicted by [Name] bei Konflikten erstellt. – Google Drive am IOS und Android: ∗ Der Partner wechselt auf die Drive App ∗ MenüIcon → Für mich Freigegeben → [Ordner Name] → Klick auf das Dokument ∗ Das Dokument kann nun mobil bearbeitet werden. – OneDrive am IOS und Android (mit E-Mail öffnen): ∗ In der erhaltenen E-Mail wird auf den Link geklickt und die Einladung wird im Webbrowser angezeigt. ∗ Der Partner muss sich gegebenenfalls anmelden. ∗ Der Partner klickt oben auf In OneDrive hinzufügen“. (falls gewünscht ” kann er ab diesen Schritt mit der OneDrive-App arbeiten → siehe für die Bearbeitung mit der App den Anwendungsfall 1 6.2) ∗ Nun ist der freigegebener Ordner in seinem OneDrive Ordner zu sehen und er wählt das Dokument aus. 61 6 Anwendungsfälle ∗ Die Vorschau des Dokuments öffnet sich. ∗ Dokument bearbeiten → In Word bearbeiten oder In Word Online bearbeiten Hinweis: In Word muss sich der Partner gegebenenfalls anmelden ∗ Der Partner kann das Dokument bearbeiten. ∗ In Word: Nach dem Bearbeiten klickt er links oben auf das ZurückIcon (auf IOS) oder klickt oben auf das SpeichernIcon (auf Android). – Dropbox am IOS und Android (über Dropbox App öffnen): ∗ Der Partner öffnet die Dropbox App und eine Meldung über die Einladung erscheint. ∗ Er drückt auf Ansicht → Annehmen ∗ Der Ordner ist nun in seinem Dropbox gespeichert. ∗ Dokument auswählen: · IOS: Er wählt das Dokument aus → BearbeitenIcon (unten) → Microsoft Word · Android: DropDownIcon → Öffnen mit → Word ∗ Das Dokument wird geöffnet und der RA bearbeitet es. ∗ Nach dem Bearbeiten klickt er links oben auf das ZurückIcon (auf IOS) oder klickt oben auf das SpeichernIcon (auf Android). – Dropbox am IOS und Android (mit E-Mail öffnen): ∗ In der erhaltenen E-Mail wird auf den Link geklickt und die Einladung wird im Webbrowser angezeigt. ∗ Der Partner muss sich gegebenenfalls anmelden. ∗ Er klickt auf Annehmen. ∗ Der Ordner ist nun in seinem Dropbox gespeichert. ∗ Der Partner wechselt in die Dropbox App. ∗ Dokument auswählen: · IOS: Er wählt das Dokument aus → BearbeitenIcon (unten) → Microsoft Word · Android: DropDownIcon → Öffnen mit → Word ∗ Das Dokument wird geöffnet und der RA bearbeitet es. ∗ Nach dem Bearbeiten klickt er links oben auf das ZurückIcon (auf IOS) oder klickt oben auf das SpeichernIcon (auf Android). • Der Partner bearbeitet das Dokument offline: – Google Drive am PC (Word): 62 6.6 Anwendungsfall 5: Kollaboration mit Partnern ∗ Der Partner öffnet Word. ∗ Datei → öffnen → Google Drvie → Aus Google Drive öffnen → Für mich Freigegeben ∗ Es wird der Order und dann das Dokument ausgewählt und geöffnet. ∗ Der Partner kann das Dokument bearbeiten. Hinweis: Falls eine andere Person gleichzeitig am Dokument arbeitet, kann es zum Sync-Konflikt kommen und es werden 2 Varianten vom Dokument erstellt. – OneDrive am PC (Sync-Folder): ∗ In der erhaltenen Email wird auf den Link geklickt. ∗ Der Partner muss sich gegebenenfalls anmelden. (falls nicht schon angemeldet) ∗ Der Partner klickt oben auf In OneDrive hinzufügen“. ” ∗ Nun ist der freigegebener Ordner in seinem OneDrive Ordner zu sehen. ∗ Der Partner öffnet den voreingestellten OneDrive-Syncfolder. ∗ Er wählt das Dokument aus in dem freigegebenen Ordner → rechte Maustaste → Öffnen ∗ Das Dokument wird mit Word geöffnet. ∗ Der Partner kann das Dokument bearbeiten. – OneDrive am PC (herunterladen & hochladen): ∗ In der erhaltenen Email wird auf den Link geklickt. ∗ Der Partner muss sich gegebenenfalls anmelden. (falls nicht schon angemeldet) ∗ Der Partner klickt oben auf In OneDrive hinzufügen“. ” ∗ Nun ist der freigegebener Ordner in seinem OneDrive Ordner zu sehen und er wählt das Dokument aus. ∗ Die Vorschau des Dokuments öffnet sich. ∗ Der Partner klickt rechts oben auf das MehrIcon → Herunterladen ∗ Nach dem Bearbeiten öffnet er in der Cloudwebseite den freigegebenen Ordner. ∗ Er klickt auf Hochladen, wählt das bearbeitete Dokument aus. ∗ Oben erscheint eine Meldung, dass eine Datei nicht hochgeladen wurde, weil es eine Datei mit dem gleichen Namen schon existiert. ∗ Der Partner klickt auf diese Meldung und wählt Ersetzen aus. Hinweis: Gleichzeitiges Bearbeiten nicht möglich. ∗ Nun ist die bearbeitete Version des Dokuments online. 63 6 Anwendungsfälle – Dropbox am PC (Sync-Folder): ∗ In der erhaltenen Email wird auf den Link geklickt. ∗ Der Partner muss sich gegebenenfalls anmelden. (falls nicht schon angemeldet) ∗ Er klickt auf Annehmen. ∗ Der Ordner ist nun in Dropbox gespeichert. ∗ Er öffnet den Dropbox-Syncfolder am PC. ∗ Er wählt das Dokument aus in dem freigegebenen Ordner → rechte Maustaste → Öffnen ∗ Das Dokument wird mit Word geöffnet. ∗ Der Partner kann das Dokument bearbeiten. Hinweis: Falls das Dokument gleichzeitig bearbeitet wird, wird ein neues Dokument mit dem gleichen Namen + Conflicted by [Name] bei Konflikten erstellt. – Dropbox am PC (herunterladen & hochladen): ∗ In der erhaltenen Email wird auf den Link geklickt. ∗ Der Partner muss sich gegebenenfalls anmelden. (falls nicht schon angemeldet) ∗ Er klickt auf Annehmen. ∗ Der Ordner ist nun in Dropbox gespeichert. ∗ Der Partner wählt das Dokument aus. ∗ Die Vorschau des Dokuments öffnet sich. ∗ Der Partner klickt rechts oben auf das MehrIcon → Herunterladen ∗ Nach dem Bearbeiten öffnet er in der Cloudwebseite den freigegebenen Ordner. ∗ Er klickt auf Hochladen und wählt das bearbeitete Dokument aus. ∗ Das Dokument wird im Hintergrund mit der neuesten Änderung automatisch aktualisiert. ∗ Der Partner klickt auf Fertig. • RA beendet Kollaboration. • Das Dokument wird aus der Cloud entfernt – Das Dokument wird heruntergeladen. – Das Cloud-Logo wird entfernt. – Das Dokument wird aus der Cloud gelöscht. 64 6.7 Zusammenfassung 6.7 Zusammenfassung Dieses Kapitel beinhaltet die Anwendungsfälle, die in diesem Projekt bearbeitet wurden. Zuerst werden die Akteure und deren Rechte für das Programm, das im Rahmen des Projekts erstellt wurde, beschrieben. Danach werden die fünf Anwendungsfälle detailliert mit dazugehörige Vorbedingungen und einzelnen Schritten vorgestellt. Die Schritte umfassen auch die Vorgehensweisen für das Bearbeiten, Ansehen mit Hilfe der CloudAngebote beziehungsweise Sync-Folder. Die Anwendungsfälle sind wie folgt: • Der Anwendungsfall 1 beinhaltet die Bereitstellung eines Dokuments für den/der Rechtsanwalt/in, der das Dokument bearbeiten will. Wobei das Hoch- und Herunterladen des Dokuments in Advokat durch den/die Sekretär/in oder den/die Rechtsanwalt/in erfolgt. Dies geschieht unter dem Account von dem/der RA, wozu der/die Sekretär/in den Zugang besitzt. • In Anwendungsfall 2 soll ein Dokument für den/der Rechtsanwalt/in, der die Datei lesen will, bereitgestellt werden. Das Hoch- und Herunterladen des Dokuments in Advokat kann wiederum durch den/die Sekretär/in oder den/die Rechtsanwalt/in erfolgen. Da das Dokument in der Cloud unter dem Account des/der Rechtsanwalts/in hochgeladen wird, besitzt er/sie die Besitzerrechte und kann daher das Dokument wiederum verändern. Daher kann in Advokat nach dem Entfernen der Datei aus der Cloud nach Änderungen gesucht werden. • Die Offline-Bearbeitung von Dokumenten ist der Anwendungsfall 3. Da der Schritt für das Hoch- und Herunterladen des Dokuments genauso wie in Anwendungsfall 1 geschieht, kann dieses durch den/die Sekretär/in oder den/die Rechtsanwalt/in passieren. Die Datei wird unter dem Account von dem/der Rechtsanwalt/in hochgeladen, wozu der/die Sekretär/in auch den Zugang dazu hat. • Der Anwendungsfall 4 umfasst das Teilen eines Dokuments für einen lesenden Zugriff. Das Dokument wird unter dem Cloud-Account des/der Rechtsanwalt/in hochgeladen und von dort aus mit dem Partner geteilt. Es gibt zwei Moöglichkeiten das Dokument dem Partner bereitzustellen, nämlich anonym oder mit Authentifizierung. Für die Variante mit der Authentifizierung muss der Cloud-Dienst von dem/der Rechtsanwalt/in mit dem des Partners übereinstimmen, das heißt der Partner braucht ein Cloud-Account unter der gespeicherten E-Mail-Adresse. Für den anonymen Zugriff wird dies nicht angefordert. Jedoch muss beachtet werden, dass jeder mit dem geteilten Link in das Dokument Einsicht nehmen kann. • In Anwendungsfall 5 passiert das Teilen eines Dokuments für einen lesend und schreibenden Zugriff. Das Dokument wird in einem Ordner unter dem Cloud-Account des/der Rechtsanwalt/in hochgeladen und von dort aus mit dem Partner geteilt. Daher besitzt der Partner nur eine Verknüpfung des Dokuments bzw. des Ordners auf seinem Cloud-Account. Um die Integrität des Dokuments zu gewaährleisten, muss der Partner sich authentifizieren. Dafür muss der Cloud-Dienst von dem/der 65 6 Anwendungsfälle Rechtsanwalt/in mit dem des Partners übereinstimmen, das heißt der Partner braucht ein Cloud-Account unter der gespeicherten E- Mail-Adresse. Der Ordner wird benötigt, damit der Partner das Dokument auch offline (mit einem anderen Textverarbeitungsprogramm anstatt von Word) bearbeiten kann. Das heißt, der Partner kann das Dokument herunterladen, und die offline überarbeitete Version des Dokuments wieder in den Cloud-Ordner hochladen. Dadurch wird das Dokument automatisch mit der Cloud von dem/der Rechtsanwalt/int synchronisiert. Sollte das Dokument oder dessen Ordner von dem/der Rechtsanwalt/in gelöscht werden, so kann der Partner nicht mehr auf das Dokument zugreifen. 66 7 Zusammenfassung Die Hauptaufgabe des Projekts war es, sich mit den Cloud-Diensten zu befassen, um die beste Lösung für eine Cloudverwaltung zu finden. Die Idee Cloudverwaltung sollte das Hoch- und Herunterladen als auch das Teilen und Löschen von Dokumenten erlauben. Dabei war es wichtig, bei den Arbeitsschritten alles sehr simpel zu halten. Da Rechtsanwälte sich mit der Technologie nicht so gut auskennen, war es recht schwer, eine beste und zugleich eine einfache Lösung zu finden. Währenddessen kam es aber auch immer wieder zu neuen Überlegungen für das Teilen von Dokumenten. Dieser Schritt dauerte daher auch am längsten im Laufe des Projektprozesses. Nach dem Ausscheiden von iCloud, wegen der komplizierten Verwaltung mit WordDokumenten, wurde nach angebotenen APIs der anderen Cloud-Diensten für VB.NET durchsucht. Danach wurde mittels dieser die erwünschten Funktionalitäten für das Programm entwickelt. Dabei kam es zu Komplikationen, wie zum Beispiel, dass die OneDrive und Dropbox API das Teilen für eine Lese- und Schreibzugriff Berechtigung nicht unterstützten. Trotzdem wurde dieses Problem mit dem Verlinken zum Dokument auf der Cloud, um es in der Weboberfläche zu teilen, gelöst. Als nächstes wurde von Dropbox eine neue API veröffentlicht, die das Teilen mit Lese- und Schreibzugriff erlaubte. Dann musste für diese Funktion die Implementierung von Dropbox neu konstruiert werden, um die neue API anbinden zu können. Die Google Drive API verursachte genauso Schwierigkeiten, sodass die Anmeldung mit einem separaten Code laufen musste. All nach diesen Phasen konnte nun als Abschluss des Projekts die Library für Advokat erstellt werden, damit sie die Funktionalitäten unseres Programms gekoppelt einbinden können. Diese Library wurde genauso im Prototyp eingebunden, um ein Beispiel-Code für die Verwendung der Bibliothek darzustellen. Somit kann Advokat bei der Einbindung den Prototypen so umgestalten, dass Funktionen erweitert werden, wie zum Beispiel das Teilen eines Dokuments für mehrere Personen. 67 Literaturverzeichnis [1] Google: set to launch google spreadsheets. MarketWatch: Global Round-up, 5(7):186, 2006. http://search.ebscohost.com/login.aspx?direct=true&db= buh&AN=21531783&site=ehost-live. [2] Introducing windows live skydrive!, August 2007 (Zugriff: 13. März 2016). http://web.archive.org/web/20091226034757/http://skydriveteam.spaces. live.com/blog/cns!977F793E846B3C96!23405.entry. [3] Mobileme 1.0. Macworld, 25(10):46, 2008. http://search.ebscohost.com/login. aspx?direct=true&db=buh&AN=34455473&site=ehost-live. [4] Hot new updates to skydrive!, Mai 2008 (Zugriff: 13. März 2016). http://web.archive.org/web/20091226034757/http://skydriveteam.spaces. live.com/blog/cns!977F793E846B3C96!23405.entry. [5] Welcome to the bigger, better, faster skydrive!, Februar 2008 (Zugriff: 13. März 2016). http://web.archive.org/web/20091226035804/http://skydriveteam. spaces.live.com/blog/cns!977F793E846B3C96!23403.entry. [6] Collaboration multiple authors. Macworld, 27(11):50, November 2010. http://search.ebscohost.com/login.aspx?direct=true&db=buh&AN= 54610173&site=ehost-live. [7] V. Barret. Dropbox me. Forbes, 188, November 2011. http://search.ebscohost. com/login.aspx?direct=true&db=buh&AN=67246114&site=ehost-live. [8] A. Beaulieu. Learning SQL. O’Reilly Media, 2009. [9] E. Griffith. Master google drive. PC Magazine, pages 175 – 179, 2014. http://search.ebscohost.com/login.aspx?direct=true&db=buh&AN= 96718410&site=ehost-live. [10] P. Hernandez. Microsoft to rebrand skydrive after uk court ruling. eWeek, page 6, August 2013. http://search.ebscohost.com/login.aspx?direct=true& db=buh&AN=89867530&site=ehost-live. [11] P. Hernandez. Dropbox activates mobile office 365 integration. eWeek, page 1, November 2014. http://search.ebscohost.com/login.aspx?direct=true&db= buh&AN=99743088&site=ehost-live. [12] D. W. Hoffmann. Software-Qualität. Springer Vieweg, 2. edition, 2013. 68 Literaturverzeichnis [13] S. Holzner, R. Howell, and B. Howell. Ado.NET Programming in Visual Basic .NET. Prentice Hall PTR, 2003. [14] M. D. Joachim Goll. Architektur- und Entwurfsmuster der Softwaretechnik. Springer Vieweg, 1. edition, 2013. [15] J. Liberty. Learning Visual Basic .NET. O’Reilly Media, 2002. [16] K. McElhearn. How to collaborate on documents using iwork and icloud.com. Macworld - Digital Edition, 33(3):112 – 117, 2016. http://search.ebscohost.com/ login.aspx?direct=true&db=buh&AN=113127030&site=ehost-live. [17] D. Moren. From itools to mobileme. Macworld, Juni 2008. http://www.macworld. com/article/1133826/dotmachistory.html. [18] J. Newman. Microsoft’s skydrive gets a new name, maybe some new features. Time.com, page 1, Januar 2014. http://search.ebscohost.com/login.aspx? direct=true&db=buh&AN=94141490&site=ehost-live. [19] C. Null. Your data... anywhere and anytime. (cover story). PC World, 25(9):110 – 116, 2007. http://search.ebscohost.com/login.aspx?direct=true&db=buh& AN=26016484&site=ehost-live. Writely application’s time has come. eWeek, 22(43):47, [20] J. Rapoza. 2005. http://search.ebscohost.com/login.aspx?direct=true&db=buh&AN= 18804575&site=ehost-live. [21] J. Seff. Wwdc: Apple introduces icloud. Macworld, Juni 2011. http://www.macworld. com/article/1160325/apple_introduces_icloud.html. [22] P. Thurrot. Windows live 2007: A look at the next generation, Juni 2007 (Zugriff: 13. März 2016). http://web.archive.org/web/20070629190005/http: //www.winsupersite.com/showcase/wl_2007_preview.asp. 69 A Mobiles Arbeiten mit Dokumenten A.1 Allgemeines Farbcodes Gelb Türkis Grün / Rosa Grau Graue Farbe Offene Frage durch Kunden (zusammen mit Advokat) zu beantworten Offene Frage Advokat-intern zu klären Änderungen zur publizierten Vorversion. Wird nach Bestätigung wieder weiß. Sonstiges Nicht verwirklichte Szenarien, Alternativen, etc. A.1.1 Änderungsübersicht Version 1.0 1.1 1.2 Datum 15.04.2015 27.04.2015 02.06.2015 Name MBR MBR MBR Beschreibung Entwurf Feedback Stakeholder eingearbeitet Gespräche mit Sillaber, Sentürk, Schweiger A.2 Aufgabenstellung A.2.1 Projektziel Es soll das Thema Mobiles Arbeiten mit Dokumenten“im Rahmen einer Diplomarbeit, gelöst ” werden. Wir verstehen darunter einerseits das Arbeiten im Außendienst, d.h. ein Rechtsanwalt (RA) verwendet ein Aktdokument (lesend oder schreibend) außerhalb der Kanzlei. Andererseits verstehen wir darunter auch Kollaboration mit Dritten, kanzleifremden Personen. Der Unterschied liegt vor allem in der Bearbeitung des Dokuments in der Cloud durch Textverarbeitungsprogramme, nicht in den von ADVOKAT programmierten/unterstützten Arbeitsabläufen. Dokumente sollen außerhalb der Advokat Umgebung zur Verfügung gestellt werden, am besten über allgemein bekannte Online Speicher/Cloud Dienste wie z. B. OneDrive. Es sollten die bekanntesten Dienste unterstützt werden, damit eventuell bereits bestehende Kenntniße und Accounts des Kunden verwendet werden können. Es gibt eine Vielzahl von alternativen technischen Lösungen, wie Mobilarbeiter Zugang zu Firmendaten bekommen, wir zielen aber auf eine Lösung ab, die folgende Aspekte berücksichtigt: • wenig bis gar keine Anforderungen an die Infrastruktur der Kanzlei • wenig bis gar kein zusätzlicher Installationsaufwand • wenig bis gar keine technische Wartung • einfache, in ADVOKAT integrierte Bedienung • möglichst geringe Lizenzkosten für Drittsoftware 70 A.2 Aufgabenstellung Wir schließen daher eine Lösung aus, die einen VPN Zugang zur Kanzlei erfordert bzw. die die Installation eines ausgewachsenen Webservers (IIS, Apache) benötigt. Prinzipiell müssen natürlich alle Arten von Dokumenten unterstützt werden, die Advokat verwalten kann. Für Arbeitsabläufe, bei denen Dokumente geändert werden, liegt unser Fokus aber klarerweise auf Microsoft Word bzw. Office Dokumenten. Die Bearbeitung der Dokumente in der Cloud wird nicht von ADVOKAT erledigt, sondern durch die Verwendung von Drittsoftware. Wir setzen auf Funktionalität der Cloud Dienste und Office Applikationen zur Bearbeitung. Obwohl dieser Bereich keine Entwicklungstätigkeit erfordert, sollte ADVOKAT Empfehlungen zur Verwendung abgeben. Die Bereitstellung von Dokumenten muss unabhängig von der Art der Speicherung in Advokat funktionieren, also für • Dateisystem • Sharepoint • sonstige DMS Unterschiede kann es in der Synchronisierung veränderter Dokumente z.B. in Bezug auf die Dokumentversionierung geben, der Ablauf sollte aber prinzipiell gleich sein. A.2.2 Anwendungsfälle A1: Außendienst, schreibender Zugriff, Bereitstellung in der Kanzlei RA ruft in der Kanzlei an und fordert ein bestimmtes Dokument an. Sekretärin (SB) markiert das Dokument in ADVOKAT für die externe Bearbeitung. ADVOKAT macht das Dokument daraufhin automatisch in der Cloud verfügbar. Nach der Bearbeitung und zurück in der Kanzlei wird die Markierung wieder entfernt und das überarbeitete Dokument wird wieder in den ADVOKAT Datenbestand übernommen. Das Dokument wird nur von diesem RA bearbeitet. Während es extern verfügbar gemacht ist, wird es daher im ADVOKAT Datenbestand für die Bearbeitung gesperrt. A2: Außendienst, lesender Zugriff, externe Bereitstellung RA wird am Wochenende von einem Kunden kontaktiert und möchte in ein Dokument Einsicht nehmen. Da niemand in der Kanzlei ist, startet er eine Mobil App auf seinem Handy und erhält eine (nach Akt gefilterte) Dokumentenliste. Er markiert das gewünschte Dokument und hat es in wenigen Minuten in seinem Online Speicher zur Verfügung. Er liest es auf seinem Smartphone bzw. seinem Tablet. Im ADVOKAT Datenbestand wird vermerkt, dass das Dokument extern verfügbar gemacht wurde. Nach der Einsichtnahme wird die Markierung wieder entfernt, wodurch das Dokument in der Cloud gelöscht wird. Dies kann auch wieder über die Mobil App erledigt werden. A3: Außendienst, Bearbeitung offline RA möchte ein Dokument im Zug bearbeiten, die Internet-Verbindung ist sehr instabil. Er lädt das Dokument daher auf seinen Laptop und bearbeitet es offline. Erst nach der Dienstreise synchronisiert er es wieder mit der Cloud. Um sicherzustellen, dass während seiner Bearbeitung keine Änderungen durch andere SBs vorgenommen werden, sperrt er das Dokument (sowohl in ADVOKAT als auch in der Cloud) für Bearbeitung. In diesem Fall ist die externe Bereitstellung 71 A Mobiles Arbeiten mit Dokumenten über eine Mobil App etwas umständlich, daher wäre eine Anwendung am Laptop (Web App, Windows 8 App, ...) besser. Wird wie hier skizziert der Cloud Dienst nur als Transportweg für eine Bearbeitung am Laptop verwendet, könnte ein direkter Download auf das Zielgerät überlegt werden. A4: Kollaboration mit Partnern RA markiert das Dokument für die externe Bearbeitung und vergibt entsprechende Berechtigungen für den Partner. ADVOKAT stellt das Dokument extern zur Verfügung und generiert eine URL, über die das Dokument in der Cloud geöffnet werden kann. Advokat bereitet ein Mail mit diesem Link für den Partner vor. Mit Onedrive und Office365 ist eine gemeinsame Bearbeitung möglich. Der Publisher kann das Dokument wieder zurücknehmen. Der Publisher kann eine Überarbeiten-Funktion einschalten, die der Bearbeiter nicht entfernen kann. Jede Bearbeitung wird markiert. A.2.3 Aufgabe im Rahmen der Bachelorarbeit Das Thema wird im Rahmen von 2 Bachelorarbeiten an der Universität Innsbruck, Institut für Informatik beleuchtet. Die Arbeiten werden sich auf die Cloud Dienste, deren Anbindung und die sich daraus ergebenden Arbeitsabläufe konzentrieren. Die Implementierung der Mobilen App und die Integration in das Produkt ADVOKAT sind nicht Teil der Aufgabenstellung. Evaluation der Cloud Dienste Unterstützung Cloud Dienste Microsoft OneDrive DropBox Google Drive Apple iCloud Owncloud (selbstverwaltet) Andere Aspecte: Muss Muss Muss Soll Soll Soll • Verwendung APIs/SDKs • Client Apps unter Windows (PC), iOs und Android • Unterstützung für MS Office Dokumenttypen bzw. Programme (Word, Excel, etc) • Authentifizierung und Security (verschlüsselter Transport/Speicherung) • Handhabung verschlüsselter Dokumente • Steuerung Zugriffsberechtigungen (z.B. Gast Zugang für Kollaboration) Arbeitsabläufe für Anwendungsfälle Anwendungsfälle A1 (schreibender Zugriff) A2 (lesender Zugriff) A3 (offline Bearbeitung) A4 (Kollaboration) Aspecte: 72 Muss Soll Soll Muss A.2 Aufgabenstellung • Abläufe definieren, durchspielen und dokumentieren für jeden untersuchten Cloud Dienst. (leichte Bedienbarkeit, Performance, etc.) • Vor- und Nachteile der untersuchten Cloud Dienste, Gemeinsamkeiten? • Notwendige Drittsoftware für lesenden und schreibenden Zugriff; ergeben sich Vereinfachungen, wenn die Zugriffsart unterschieden wird? • Lizenzkosten für Drittsoftware (z.B. Azure AD, OneDrive professional vs. private) • Unterstützung bei der Rücksynchronisation von Dokumenten (Versionierung, Erkennung Unterschiede) Konzept und Implementierung Unterstützung Cloud Dienste Konzept Stammdatenverwaltung und Dokumentstatus Synchronisierungsservice (AdvCloudSyncService) Einheitliche Schnittstelle Cloud Dienste Anbindung OneDrive Anbindung DropBox Anbindung GoogleDrive Anbindung iCloud Anbindung OwnCloud Schnittstelle ADVOKAT Zugriff Testapplikation Unit Tests für alle Komponenten Automatisierte Integrationstests Aspecte: Muss Muss Muss Muss Muss Soll Soll Soll Muss Muss Soll Soll • Die zu erstellenden Software Komponenten sind mit Visual Studio und VB.NET zu implementieren. • Konzept Stammdatenverwaltung und Dokumentstatus: • Welche Daten fallen an? • Welche Status müssen unterstützt werden? (z.B. Ist Unterscheidung lesend/schreibend sinnvoll?) • Cloud Dienst API vs. Client App: Vergleich der beiden Varianten in Bezug auf Bedienbarkeit und Wartbarkeit. Definition der Schnittstelle zu ADVOKAT mit Unterstützung des Entwicklungsteams. A.2.4 Weiterführende Aufgaben Mobil App Advokat Cloud Admin“ ” Notwendig • Abfrage Dokumentliste • Diverse Filter (Akt, SB, ...) • Externe Bearbeitung aktivieren 73 A Mobiles Arbeiten mit Dokumenten Optional • Externe Bearbeitung deaktivieren • Zugriffsrechte konfigurieren A.3 Systemcontext • AdvCloudSyncService: läuft einmalig in der Kanzlei, vorzugsweise auf einem Server. Prüft Advokat DB auf Synchronisationsaufträge und schreibt das Ergebnis zurück. Aktualisiert Dokumente, löscht Dokumente vom Cloud Dienst. • AdvCloudAdminService: stellt eine REST-API zur Verfügung. Abfrage von Dokumentlisten, Markieren von Dokumenten für externe Bearbeitung, etc. • AdvPollService: Abfragen eventueller Aufträge auf dem Advokat Webserver und, wenn vorhanden, weiterleiten an den lokal laufenden Service. • AdvProxyService: Sammeln aufgelaufener Aufträge und Weitergabe, sobald sich das PollService meldet. • AdvCloudAdmin: Mobile App zur Abfrage von Dokumentenlisten und markieren einzelner Dokumente für externe Bearbeitung. 74