Busy Architects Guide to Modern Web Architecture

ted@tedneward.com | Blog: http://blogs.tedneward.com | Twitter: tedneward | Github: tedneward | LinkedIn: tedneward

Objectives

Web architecture has changed over the years

History of the Web

How we got here

History

History

Stage One: Xanadu

History

Stage One: Xanadu

"Xanadu, a global hypertext publishing system, is the longest-running vaporware story in the history of the computer industry. It has been in development for more than 30 years."

History

Stage One: Xanadu

"Xanadu was meant to be a universal library, a worldwide hypertext publishing tool, a system to resolve copyright disputes, and a meritocratic forum for discussion and debate. By putting all information within reach of all people, Xanadu was meant to eliminate scientific ignorance and cure political misunderstandings. And, on the very hackerish assumption that global catastrophes are caused by ignorance, stupidity, and communication failures, Xanadu was supposed to save the world."

History

Xanadu's 17 Rules:

    Every Xanadu server is uniquely and securely identified.

    Every Xanadu server can be operated independently or in a network.

    Every user is uniquely and securely identified.

    Every user can search, retrieve, create and store documents.

    Every document can consist of any number of parts each of which may be of any data type.

    Every document can contain links of any type including virtual copies ("transclusions") to any other document in the system accessible to its owner.

History

Xanadu's 17 Rules:

    Links are visible and can be followed from all endpoints.

    Permission to link to a document is explicitly granted by the act of publication.

    Every document can contain a royalty mechanism at any desired degree of granularity to ensure payment on any portion accessed, including virtual copies ("transclusions") of all or part of the document.

    Every document is uniquely and securely identified.

    Every document can have secure access controls.

    Every document can be rapidly searched, stored and retrieved without user knowledge of where it is physically stored.

History

Xanadu's 17 Rules:

    Every document is automatically moved to physical storage appropriate to its frequency of access from any given location.

    Every document is automatically stored redundantly to maintain availability even in case of a disaster.

    Every Xanadu service provider can charge their users at any rate they choose for the storage, retrieval and publishing of documents.

    Every transaction is secure and auditable only by the parties to that transaction.

    The Xanadu client-server communication protocol is an openly published standard. Third-party software development and integration is encouraged.

History

Stage Two: Simple Browser

History

Stage Three: Simple Server

History

Stage Four: Complex Browser

History

Stage Five: Complex Server

History

Stage Six: Integration/APIs

History

Problems still plague the Web, though

And Xanadu was only for hyperlinked documents

History

Goals

What are we really after?

Goals

What is "Modern Web Architecture"?

Goals

What is "Modern Web Architecture"?

Goals

What is "Modern Web Architecture"?

Goals

What is "Modern Web Architecture"?

Goals

What is "Modern Web Architecture"?

Theory

What does Platform-Oriented Development imply?

Theory

What is a "platform"?

Theory

What is a "platform"?

Theory

What is a "platform"?

Theory

Examples of platforms

Theory

Many platforms are developer-based, because that's what developers know best

Practical

What does Platform-Oriented Development imply?

Practical

What is a "platform"?

Practical

Is it just a set of APIs?

Practical

Does it have to be HTTP?

Practical

How does MWA relate to SOA and/or coarse-grained or microservices?

Practical

What about messaging or event-bus systems?

Practical

How does cloud fit in?

Practical

Is it "functional", "object-oriented" or "resources"?

Practical

What about CQRS or Event Sourced systems?

More importantly, should entities/resources expose state?

Practical

Then there's all the different clients we have to consider

Summary

Wrapping Up

Summary

The Web is a Modern Web Architecture

Decide how much of the MWA you really need

Credentials

Who is this guy?