Diplomarbeit: evidence goes Azure Pflichtenheft Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Version: 1.1 Dokumentname: Pflichtenheft_MasterThesis.docx Abstract: Den .net basierenden Applikationsserver „evidence application server“ in der Microsoft Cloud „Azure“ verfügbar machen. Student: Manuel Kaderli Experte: Rolf Wenger Glaux Soft AG Steigerhubelstrasse 3 weroSoft GmbH Steingrübliweg 8a 3008 Bern 3072 Ostermundigen +41 31 388 10 14 +41 31 544 22 22 Betreuer: Beat Kiener Glaux Soft AG Steigerhubelstrasse 3 3008 Bern +41 31 388 10 33 Glaux Soft AG Steigerhubelstrasse 3 CH-3008 Bern Tel. +41 31 388 10 10 [email protected] www.glauxsoft.com 0 Inhaltsverzeichnis 1 Allgemeines ........................................................................................................................................... 3 1.1 Modifikationen und Freigaben.........................................................................................3 1.2 Abkürzungen und Begriffe ............................................................................................3 1.2.1 Abkürzungen ...........................................................................................................3 1.2.2 Begriffe .................................................................................................................3 1.3 2 Referenzierte Dokumente ..............................................................................................3 Einleitung ............................................................................................................................................... 4 2.1 Ausgangslage ............................................................................................................4 2.2 Zweck des Dokuments ................................................................................................4 2.3 Management Summary ................................................................................................5 3 Ziele....................................................................................................................................................... 7 3.1 Ziel Priorisierung ........................................................................................................8 3.1.1 Basisdienste Applikationsserver Konzept Priorisierung .........................................................8 3.1.2 Applikationsserver Prototyp Priorisierung .........................................................................9 3.2 Anforderungen ......................................................................................................... 10 3.2.1 #1 Basisdienste Applikationsserver Konzept.................................................................. 10 3.2.2 3.2.3 #2 Repository Konzept .......................................................................................... 10 #3 Kommunikation Konzept ..................................................................................... 10 3.2.4 #4 Applikationsserver Prototyp .................................................................................. 11 3.2.5 #5 Anbindung an SQL Azure Service Prototyp ............................................................ 11 3.2.6 3.2.7 #6 Einbinden von Umsystemen Prototyp ..................................................................... 11 #7 Performance Analyse Prototyp.............................................................................. 11 3.2.8 #8 Toolset Migration Konzept .................................................................................. 12 3.2.9 #9 Deployment und Maintenance Konzept .................................................................. 12 3.2.10 #10 Einbinden von Umsystemen Konzept.................................................................. 12 3.2.11 #11 Anbindung an Azure Blob Storage Prototyp ......................................................... 14 3.2.12 #12 Abgrenzung Code Basis ................................................................................. 15 3.2.13 #13 Abgrenzung Betriebswirtschaftliche Sicht .............................................................. 15 3.2.14 #14 Abgrenzung Security ...................................................................................... 15 4 Anhang.................................................................................................................................................. 16 4.1 Tabellenverzeichnis.................................................................................................... 16 4.2 Abbildungsverzeichnis ................................................................................................ 16 Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 2/16 1 Allgemeines 1.1 Modifikationen und Freigaben Die Freigabe des Projekthandbuches erfolgt durch den Experten der Diplomarbeit. 1.2 Abkürzungen und Begriffe 1.2.1 Abkürzungen Abkürzung Definition der Abkürzung SDP Software Development Plan SAD Software Architecture Document SRS Software Requirements Specification SWS Software Schule Schweiz CRUD Create, Read, Update, Delete ORM Objekt Relationaler Mapper COM Component Objetct Model ACID atomic, consistent, isolation, durability CTI Computer Telefonie Integration ERP Enterprise Resource Planning 1.2.2 Begriffe Bedeutung Begriff Cloud Computing Bezeichnet den Ansatz, IT-Infrastruktur(Rechenleistung/Speicher/Fertige Programme) dynamisch an den Bedarf über Netzwerk zur Verfügung zu stellen. Windows Azure Windows Azure Plattform(kurz Azure)ist Microsofts Cloud-Computing-Plattform Plattform Evidence Appli- Kernstück des evidence Framework, stellt ORM und andere Dienste für Applikationen zur Verfügung kationsserver Evidence Cloud- Der in dieser Masterthesis zu erstellende Applikationsserver, welcher ein Subset an Funktionalität des server evidence Applikationsserver enthalten soll Evidence Wincli- Der Standard .net Windows Forms basierende Client mit dem auf den evidence Applikationsserver zugegriffen wird ent SQL Azure Ser- Ein Cloud basierter, relationaler SQL Service. Basierend auf dem Microsoft SQL Server vice Ein verwaltetes Verzeichnis zur Speicherung und Beschreibung von digitalen Objekte Repository 1.3 Referenzierte Dokumente Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 3/16 2 Einleitung 2.1 Ausgangslage Das evidence Application Framework der Glaux Soft AG basiert auf dem Microsoft .NET Framework und bildet die Basis für verschiedene Geschäftsanwendungen. Azure ist Microsoft’s Could Computing Platform. Microsoft bietet damit „Plattform as a service“ an. Der Vorteil von Cloud Computing gegenüber „On-premises“ ist einerseits Finanziell, da man keine Investitionskosten hat, und andererseits die Skalierbarkeit, da man bei Bedarf einfach zusätzliche Rechenleistung und Speicher dazukaufen kann. 2.2 Zweck des Dokuments Das Pflichtenheft beschreibt die Anforderungen aus Sicht Auftragnehmer. Normalerweise wird das Pflichtenheft vom Kunden geliefert, und ist daher nicht Technisch. In diesem Fall wird das Pflichtenheft vom Studenten verfasst, und wird durch die Art der Diplomarbeit etwas mehr Technisch-Lastig ausfallen als gewöhnlich. Die Anforderungen werden in Detaillierter form in der Software Requirements Specification(SRS) noch einmal behandelt. Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 4/16 2.3 Management Summary Mit Azure bietet Microsoft einen „Plattform as a Service“ an, mit dem man Kostengünstig und effizient Applikationen betreiben kann. Der Hardware und Betriebssystem Support wird vom Cloud-Betreiber sichergestellt. Abbildung 1: Microsoft Azure Cloud Plattform Das evidence Framework der Firma Glaux Soft AG bietet die Grundlage um CRM, e-Government und andere Kundenprojekte umzusetzen. Abbildung 2: evidence Framework Der evidence Applikationsserver ist das Kernstück des evidence Application Framework. Der Applikationsserver wird als Windows Service betrieben, und ist entweder beim Kunden auf einem Server installiert, oder wird von einem „Infrastructure as a Service“ Provider betreiben. Der Applikationsserver ist stellt einerseits den Zugriff zur Datenbank als ORM sicher, hat darüber hinaus allerdings noch viele Spezialisierte Aufgaben. Zu erwähnen sind insbesondere folgende Dienste: • Berechtigungs-Management • Mandant-Management • Reporting • User Settings Management Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 5/16 • Dokumenten-Management Abbildung 3: evidence Application Framework Ziel der Diplomarbeit ist ein Konzept und einen Prototypen des evidence Applikationsserver zu erstellen, welcher in der Azure Cloud betrieben werden kann. Aufgrund dieser Erfahrungen kann dann entschieden werden ob der evidence Applikationsserver Cloud-Fähig gemacht werde soll oder nicht. Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 6/16 3 Ziele Die Ziele werden in 4 unterschiedliche Typen unterteilt: • Musskriterien o Für das Produkt unabdingbare Leistungen, die in jedem Fall erfüllt werden müssen. • Sollkriterien o • Die Erfüllung dieser Kriterien wird angestrebt Kannkriterien o Die Erfüllung ist nicht unbedingt notwendig, sollten nur angestrebt werden, falls noch ausreichend Kapazitäten vorhanden sind. • Abgrenzungskriterien o Diese Kriterien sollen bewusst nicht erreicht werden Einige Ziele beinhalten Teile welche in verschiedenen Typen(Muss/Soll/Kann/Abgrenzung) einzuordnen sind. Aufgrund der Lesbarkeit der Ziele werden diese Teilanforderungen zusammengehalten, es wird wo nötig dann explizit erwähnt um welchen Typ es sich handelt. In dieser Masterthesis gibt es zwei Arten von Lieferobjekten: 1. Konzept 2. Prototyp Die einzelnen Kriterien werden entweder nur als Konzept erarbeitet, oder zusätzlich als Prototyp implementiert. Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 7/16 3.1 Ziel Priorisierung Name Priorität #1 Basisdienste Applikationsserver Konzept Siehe 3.1.1 #2 Repository Konzept Muss #3 Kommunikation Konzept Soll #4 Applikationsserver Prototyp Siehe 3.1.2 #5 Anbindung an SQL Azure Service Prototyp Kann #10 Einbinden von Umsystemen Konzept Muss #6 Einbinden von Umsystemen Prototyp Soll #7 Performance Analyse Prototyp Soll #8 Toolset Migration Konzept Muss #9 Deployment und Maintenance Konzept Soll #11 Anbindung an Azure Blob Storage Prototyp Soll #12 Abgrenzung Code Basis Abgrenzung #13 Abgrenzung Betriebswirtschaftliche Sicht Abgrenzung #14 Abgrenzung Security Abgrenzung Tabelle 1: Ziele Priorisierung 3.1.1 Basisdienste Applikationsserver Konzept Priorisierung Name Priorität SessionState Muss Persistieren Muss Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 8/16 Berechtigungs-Management Soll Mandant-Management Soll Reporting Kann User Settings Management Kann Dokument-Management Soll Scheduled und Asynchrone Tasks Kann Server-Plugins Soll Tabelle 2: Basisdienste Applikationsserver Konzept Priorisierung 3.1.2 Applikationsserver Prototyp Priorisierung Name Priorität Kommunikation von Client zum Applikationsserver Muss Session Management Muss Persistieren im SQL Azure Service Muss Scheduling und Asynchrone Tasks Soll Aufzeigen eines Programmiermodels für Projektentwicklung Muss Tabelle 3: Applikationsserver Prototyp Priorisierung Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 9/16 3.2 Anforderungen 3.2.1 #1 Basisdienste Applikationsserver Konzept Der evidence Applikationsserver bietet eine Vielzahl von Basisdiensten an insbesondere: • Persistieren • Berechtigungs-Management • Mandant-Management • Reporting • User Settings Management • Dokumenten-Management • Scheulduled und Asynchrone Tasks • Server-Plugins • SessionState Es muss ein Dokument erstellt werden, welches aufgezeigt, welche Anpassungen nötig sind und das evidence Server Modell mit der Oben genannten Funktionalität auf in Azure zu betreiben. 3.2.2 #2 Repository Konzept Der evidence Applikationsserver basiert auf einer generischen Datenbank-Repositorystruktur. Diese Repositorystruktur kann mit dem evidence Designstudio angepasst werden. Das Repository, wie auch die Daten werden zusammengefasst in einer Microsoft SQL Server Datenbank gespeichert. In der Azure Cloud gibt es die SQL Azure Service. Dabei handelt es sich um einen CloudBasierenden, relationale Datenbank-Service. Der SQL Azure Service basiert auf der Microsoft SQL Server Technologie, und unterstützt Transact-SQL(T-SQL). Es gibt allerdings Unterschiede beziehungsweise Einschränkungen gegenüber dem Microsoft SQL Server. Es muss ein Dokument erstellt werden, welches aufgezeigt welche Einschränkungen existieren, und welche Anpassungen gemacht werden müssen, damit eine evidence Datenbank in SQL Azure Service betrieben werden kann. 3.2.3 #3 Kommunikation Konzept Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 10/16 Im Moment Kommunizieren der evidence Winclient und der evidence Applikationsserver mittels .net Remoting. Es muss einerseits ein Dokument erstellt werden, welches aufzeigt was für Änderungen am evidence Cloudserver nötig sind, um diesen in Azure anzusprechen. Weiter muss auch für den evidence Winclient ein Dokument erstellt werden, wie dieser mit dem in der Azure Cloud laufenden evidence Cloudserver Kommunizieren kann. 3.2.4 #4 Applikationsserver Prototyp Es muss ein lauffähiger Prototyp eines Applikationsservers(evidence Cloudserver) erstellt werden, welcher in der Cloud betrieben werden kann. Dieser Prototyp muss folgende Funktionalität bieten: 1. Kommunikation von Client zum Applikationsserver 2. Session Management 3. Persistieren im SQL Azure Service 4. Scheduling und Asynchrone Tasks 5. Aufzeigen eines Programmiermodels für Projektentwicklung 3.2.5 #5 Anbindung an SQL Azure Service Prototyp Der evidence Cloudserver muss Daten im SQL Azure Service Persistieren. Alle CRUD Operatioinen müssen unterstützt werden. 3.2.6 #6 Einbinden von Umsystemen Prototyp Es muss ein Umsystem Bidirektional eingebunden werden. Das Umsystem muss Service des evidence Cloudserver initialisieren können, und umgekehrt muss der evidence Cloudserver einen Service des Umsystem initialisieren können. 3.2.7 #7 Performance Analyse Prototyp Es muss analysiert werden, wie die Performance des evidence Cloudserver ist, abhängig davon ob er in der Azure Cloud oder Lokal betrieben wird. Die Zeit einer bestimmten Anzahl lesender und schreibender Zugriffe muss lokal und in der Azure Cloud gemessen werden, damit eine konkrete Aussage über die Performance gemacht werden kann. Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 11/16 3.2.8 #8 Toolset Migration Konzept Das evidence Framework besitzt ein Toolset mit welchem das evidence Datenbank Repositoy konfiguriert und verwaltet wird. Dieses Toolset besteht insbesondere aus folgenden Komponenten: • EvidenceDesignStudio • EvidenceRepositoryUpdater • EvidenceDBInstaller Diese Tools kommunizieren entweder via dem nativen SQL Provider, oder via OleDB mit der Datenbank. Es muss ein Dokument erstellt werden um aufzuzeigen, ob diese Tools mit dem SQL Azure Service kommunizieren können. Funktioniert die Kommunikation nicht, muss in dem Dokument ein Weg aufgezeigt werden, wie diese Tools angepasst werden müssen, damit die Verbindung mit dem SQL Azure Service funktioniert. 3.2.9 #9 Deployment und Maintenance Konzept Ein evidence Projekt besteht aus diversen Komponenten, wovon einige vom evidence Framework gestellt werden, und andere Projektspezifisch sind. Die Datenbank besteht aus einem Repository(Strukturdaten) und Runtime-Daten(Laufzeitdaten). Beide können bei jeder Kundenspezifischen Installation verschieden aufgebaut sein, basieren aber immer auf einer evidence Framework Repository Version. Ähnlich wie die Datenbank besteht auch die eigentliche Applikation(Client und Server) einerseits aus evidence Framework Komponenten, und andererseits aus Projektspezifischen Komponenten(dll/exe). Es muss ein Dokument erstellt werden, welches aufgezeigt, wie diese Unterschiedlichen Komponenten in der Azure Cloud verteilt werden, und wie man bei einem Framework oder Projektspezifischen Versionswechsel vorgehen muss. 3.2.10 #10 Einbinden von Umsystemen Konzept In den meisten Projekten bei denen der evidence Applikationsserver verwendet wird, werden Schnittstellen zu Umsystemen integriert. Enterprise Resource Planning Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 12/16 Computer Telefonie Integration Legacy Systeme Individuelle Anwendungen Tabelle 4: Beispiele für Umsysteme Es gibt einerseits Unidirektionale Anbindungen, bei denen der evidence Applikationsserver entweder vom Umsystem Aufgerufen wird, oder Funktionen des Umsystem aufruft. Andererseits gibt es Bidirektionale Anbindungen bei denen die Kommunikation von beiden Seiten initiiert werden kann. Diese verschiedenen Umsysteme setzen Unterschiedliche Technologien zur Integration voraus. War es früher vielfach COM, werden heute vermehrt Webservice1 eingesetzt. Weiter gibt es auch einfache Schnittstellen bei denen nur ein Austausch von Dateien stattfindet. Eine weitere Möglichkeit zur Integration von Schnittstellen sind Enterprise Application Integration, welche technologisch aber vielfach auch Webservice erfordern. Es muss ein Dokument erstellt werden, welches aufgezeigt wie der evidence Applikationsserver in der Azure Cloud mit Umsystemen Kommunizieren kann. Sowohl Unidirektional wie auch Bidirektional. 1 http://de.wikipedia.org/wiki/Webservice Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 13/16 3.2.11 #11 Anbindung an Azure Blob Storage Prototyp Der evidence Applikationsserver besitzt Dokumenten Management Support. Damit können Dokumente gespeichert und wieder geladen werden. Weiter können diese Dokumente dann mit beliebigen anderen Objekten in Beziehungen gebracht werden. Die Dokumente werden dabei auf einem Filesystem gespeichert. Mit Azure Blob Storage besteht die Möglichkeit Dokumente in der Cloud zu speichern, und von dort wieder zu lesen. Der evidence Cloudserver Prototyp muss die Möglichkeit bieten Dokumente zu speichern und zu laden. Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 14/16 3.2.12 #12 Abgrenzung Code Basis Die Implementation muss nicht auf Basis des evidence Source Code erfolgen, muss jedoch Konzepte und Modelle welche von evidence verwendet werden, so weit wie möglich berücksichtigen. Es muss im Integrationskonzept ersichtlich sein welche Konzepte in der Cloud nicht mehr verwendet werden können. 3.2.13 #13 Abgrenzung Betriebswirtschaftliche Sicht Die Betriebswirtschaftliche Betrachtung der Cloud ist nicht Teil dieser Diplomarbeit. Es gibt in der Firma Glaux Soft eine andere Arbeit welche sich mit diesem Thema auseinandersetzt. 3.2.14 #14 Abgrenzung Security Der Aspekt Security der Daten sowie der Kommunikation mit der Cloud ist nicht Teil dieser Diplomarbeit. Es gibt in der Firma Glaux Soft eine andere Masterthesis welche sich mit diesem Thema auseinandersetzt. Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 15/16 4 Anhang 4.1 Tabellenverzeichnis Tabelle 1: Ziele Priorisierung ...............................................................................................8 Tabelle 2: Basisdienste Applikationsserver Konzept Priorisierung ...................................................9 Tabelle 3: Applikationsserver Prototyp Priorisierung ...................................................................9 Tabelle 4: Beispiele für Umsysteme .................................................................................... 13 4.2 Abbildungsverzeichnis Abbildung 1: Microsoft Azure Cloud Plattform ..........................................................................5 Abbildung 2: evidence Framework ........................................................................................5 Abbildung 3: evidence Application Framework ..........................................................................6 Projekt: evidence goes Azure Thema: evidence in der Cloud betreiben Dokumentname: Pflichtenheft 16/16