2007 - Basta!: Nach soa kommt soc

39
Daniel Fisher | devcoach® Nach SOA kommt SOC Service-Orientierung auf dem Client SOFTWARE://DEVELOPMENT + ARCHITECTURE + CONSULTING

Transcript of 2007 - Basta!: Nach soa kommt soc

Page 1: 2007 - Basta!: Nach soa kommt soc

Daniel Fisher | devcoach®

Nach SOA kommt SOCService-Orientierung auf dem Client

SOFTWARE://DEVELOPMENT + ARCHITECTURE + CONSULTING

Page 2: 2007 - Basta!: Nach soa kommt soc

Speaker | Topic [edit in Master view] 2

devcoach®

• Michael Willers und Daniel Fisher– +10 Jahre Erfahrung in Projekten

• Development• Architecture• Consulting

– Echte Projekte – Nicht bloß coole Demos!– Tiefgehendes technisches Wissen und Praxis-Know-how

• Service-Orientierung• Web• Datenzugriff• Security

Page 3: 2007 - Basta!: Nach soa kommt soc

Speaker | Topic [edit in Master view] 3

devcoach® Cont.• Architektur Beratung

– Projektbegleitung von der Analyse bis zum Roll-out, vom Back-End zum UI

• Scalability & Performance • Integration & Interoperability• Maintainability & Deployment

• Proof-of-Concepts und Prototyping/Individual bits• Coaching

– Vor Ort, am Telefon, per Mail, in Video-Konferenzen oder über Remote Desktop

– Knowledge transfer– Q&A

Page 4: 2007 - Basta!: Nach soa kommt soc

Speaker | Topic [edit in Master view] 4

NACH SOA KOMMT SOCService-Orientierung auf dem Client

Page 5: 2007 - Basta!: Nach soa kommt soc

SOA? Aber nicht auf dem Server?• Ja, da war doch noch was…• Clients die SO-Services nutzen, gehören zur

Architektur dazu und müssen/sollten wie die Services gewissen Implikationen folgen– Genauso, Wie auf dem Service Back-End-Logik

anders verteilt wird– Die Rolle der Datenbank sich ändert– …

Page 6: 2007 - Basta!: Nach soa kommt soc

SOA• Autonom• Formale Kommunikation• Disconnected• Asynchron

… auch auf dem Client!

Page 7: 2007 - Basta!: Nach soa kommt soc

ANFORDERUNGENFront-Ends für SO-Systeme

Page 8: 2007 - Basta!: Nach soa kommt soc

Input Handling• Daten müssen gesammelt werden, bevor sie

verschickt werden– Wie im wahren Leben

• Wenn Sie sowas haben ;-)• Beispiel: Steuererklärung

• Daten müssen zwischengelagert werden, wenn das Back-End nicht erreichbar ist– Offline Fähigkeit

Page 9: 2007 - Basta!: Nach soa kommt soc

Multiple Front End Types• ASP.NET• Windows Forms• WPF• Silverlight

• DWX• LDPE• Nur ein Scherz

– Aber wer weiß schon, was uns morgen beglückt…

Page 10: 2007 - Basta!: Nach soa kommt soc

Testability• Test sind wichtig! • Um so wichtiger mit jedem zusätzlichen

Front-End!

• Für Sie nicht interessant?– Und wie garantieren Sie Ihre „Code Qualität“?

Page 11: 2007 - Basta!: Nach soa kommt soc

Maintainability• Business Logic im UI == Spaghetti Code

– Enge Koppelung (Tightly Coupled)• Un-testable• Un-maintainable• Un-extensible• Un-sexy

Page 12: 2007 - Basta!: Nach soa kommt soc

USER INTERFACE PATTERNS

Eine Lösung?

Page 13: 2007 - Basta!: Nach soa kommt soc

UX Patterns?• Definierter Weg Oberflächen zu schreiben• Lose Koppelung zwischen UI und Logik• Ersetzbarkeit der Präsentationsschicht• Testbarkeit der Logik und UI-Interaktion• Weniger Code?

Page 14: 2007 - Basta!: Nach soa kommt soc

Was der Martin sagt…The Model-View-Controller metaphor is a way to design and

implement interactive application software that takes advantage of modularity, both to help the conceptual development of the applications, and to allow pieces already developed for one application to be reused in a new application.

The metaphor imposes a separation of behavior between the actual model of the application domain, the views used for displaying the state of the model, and the editing or control of the model and views.

Page 15: 2007 - Basta!: Nach soa kommt soc

MVC/P• Model ist die fachliche Domäne (Business-Objekte). Oft

auch die Komponente des Systems, welche die “Arbeit” verrichtet.

• View ist die Oberfläche. Eng assoziiert mit einem Controller und exakt einem Model, wobei ein Model mehrere Views und Controller haben kann.

• Controller/Presenter definieren die Schnittstelle zwischen View und Model.

Page 16: 2007 - Basta!: Nach soa kommt soc

Nochmal der Martin …• Many UI frameworks provide the ability to easily map

between the view and model, often using some kind of Data Binding. These approaches are very effective in allowing you to declaratively set up a relationship between elements in the view and model. Usually, however, there are more complex relationships which require you to have more complex view logic. This logic can be hard to manage, and in particular hard to test, while embedded in the view.

Page 17: 2007 - Basta!: Nach soa kommt soc

MVC

Controler

Model

View(Interface)

View(Implementation)

Load Data

Get Data

Set Data

Ask to save Data

Save Data

Bubble ChangeEvent

Page 18: 2007 - Basta!: Nach soa kommt soc

MVP

Presenter

Model

View(Interface)

View(Implementation)

Load Data

Update View

Bubble ChangeEvent

Save Data

Page 19: 2007 - Basta!: Nach soa kommt soc

Page flow• Page flow control

– Multi-page-forms– Neested flows– Paused flows

• IKEA bitte nur für Möbel…

Page 20: 2007 - Basta!: Nach soa kommt soc

State• Ja… Was ist eigentlich State?• Nein, nicht der Session-State von ASP.NET

Page 21: 2007 - Basta!: Nach soa kommt soc

USER INTERFACE PATTERNS

Page 22: 2007 - Basta!: Nach soa kommt soc

Model View Controller/Presenter

Presenter

NavigationService

ModelService

StateService

Model

View

Events (Data and Commands)

Controller

Data

Page 23: 2007 - Basta!: Nach soa kommt soc

Model• Business-Objekte• Im schlimmsten Fall auch ein DataSet

– Überflüssiger Verbrauch von CPU/Speicher• 66% langsamer als Business-Objekt und DataReader

Page 24: 2007 - Basta!: Nach soa kommt soc

View• Enthalten UI (Controls)• Enthalten UI-Logik

Page 25: 2007 - Basta!: Nach soa kommt soc

View Cont.• Ermöglichen über Bind-Methoden Datenbindung

– Business-Objekt-Eigenschaften/Kollektionen• Benachrichtigen Abonnenten per Events über

Aktionen– Windows Anwendungen– Web Anwendungen (Postbacks)

• Und was ist mit AJAX?

Page 26: 2007 - Basta!: Nach soa kommt soc

Controller• Initialisierung…

– Durch die Anwendung…– …Nicht durch das View!

• Deswegen der Name “Controller”!

– Web Anwendung• Lebenszyklus eines Request

– HTTPHandler – Helper to catch URLs…

– Windows Anwendung• Lebenszyklus des Prozesses

– Hook-up/Navigation Service

Page 27: 2007 - Basta!: Nach soa kommt soc

Controller Cont.• Enthält die Business-Logik

– Use Case– Lädt Model(s) und bindet diese(s) an View(s)

• Bind-Methode mit Kollektion/Business-Objekt-Eigenschaften

• Abonniert Ereignisse der View-Definition– Persistenz

Page 28: 2007 - Basta!: Nach soa kommt soc

Model Service

ModelService

Model

Provides access to models

Page 29: 2007 - Basta!: Nach soa kommt soc

Model Service• Zugriffs/Persistenz API für Model

– Database• SQL Server• …

– Web Service• WCF• …

• NHibernate…• …

Page 30: 2007 - Basta!: Nach soa kommt soc

Navigation Service

Page Flow Provider

NavigationService

Page FlowInstance Store

Provides navigation methods to navigate between views onpage flow instances.

Loads and provides access to page flows

View Provider

View Store

Loads and provides access toviews

Page 31: 2007 - Basta!: Nach soa kommt soc

Navigation Service• Liest Liste der Views

– Web Form URLs– Formular Typen

• Verbindet PageFlow eines Providers mit Views• Navigation API

– Web/Win– Provider?

Page 32: 2007 - Basta!: Nach soa kommt soc

State Service

StateService

State Provider

State Store

Loads and provides access to state objects

Provides access to the state data.

Page 33: 2007 - Basta!: Nach soa kommt soc

State Service• Speichert *unfertiges* Model auf dem Client

– Bis alle Daten für das Model gesammelt sind• Beispiel: Steuereklärung

• API für Page-Flow-State (Benutzer/Instanz)• API für Cross-Page-Flow Datentransfer• Provider

– In-Memory– SQL-Server– …

Page 34: 2007 - Basta!: Nach soa kommt soc

Page Flow• Plattform-unabhängige Definition

– Graphen mit Namen der Views• Keine Typen/URLs!

• Einzelne Views in n Page-Flows– Page-Flow “A” und “B” benutzen “EntryForm1”

• Parallele Page-Flows (unfinished tasks)– GUID identifiziert Instanz

• Page Flow Store Provider– XML, Database, Windows Workflow Foundation

Page 35: 2007 - Basta!: Nach soa kommt soc

Speaker | Topic [edit in Master view] 35

ZUSAMMENSPIELAutonome Komponenten

Page 36: 2007 - Basta!: Nach soa kommt soc

Loose koppelung• Views

– Keine Referenz zum Controller– Sollte auch ohne Pattern laufen (UI-Logik)

• Controller– Steuert View/Model-Interaktion und Page-Flow-Navigation

• Model– Domain Modell/Business-Objekte– Nur Controller/Presenter bekannt

• Presenter– The Glue In Between…

Page 37: 2007 - Basta!: Nach soa kommt soc

Model Editing Messages• Business Objects

– INotifyChangedProperty• DataSets*

– GetChanges()

* Wer sich schon Gedanken um eine saubere Architektur macht sollte wissen warum er das DataSet nicht verwenden sollte…

Page 38: 2007 - Basta!: Nach soa kommt soc

Wohin mit der Logik?• Model:

– Domänenspezifisches Verhalten• Controller:

– Business-Logik– Persistenz

• View– Oberflächen-Logik

• Beispiel: Steuerelement-Hoover, Expand, Collaps, Sort, Popup…

Page 39: 2007 - Basta!: Nach soa kommt soc

Copyright• Copyright © 2007, all rights reserved

– devcoach®passstraße 10952070 aachengermany

[email protected]

• The presentation content is provided for your personal information only. Any commercial or non-commercial use of the presentation in full or of any text or graphics requires a license from copyright owner.

• This presentation is protected by the German Copyright Act, EU copyright regulations and international treaties.