The Semantic Web Architecture
What is a “Semantic” in Web n-Tier Architecture?
The TMD definition of an Architectural Semantic is:
“The Representation of a Domain Entity rather than the Domain Entity Itself”
The “Semantic” of a concrete implementation is generally non-temporal but the implementation of the universal idea, the Semantic, will change over time.
By designing to a set of
Universal Business Domain Semantics
rather than Business Domain Requirements,
that are defined in a single point in space and time,
we are able to manage the delivered
results dynamically over time.
This concept was spawned by the study of how HTML 5 was developed.
Tens of thousands of existing Web sites were studied for their structure and delivery framework.
The result of that study was that even though the sites were radically different in their mission and delivery mechanisms the overall structure could be defined with just a handful of common “HTML 5 Semantics“.
These semantics could define the implementation of almost any modern Web page through a Logical Semantic Web Page Flow Chart.
The Modern Developer’s Semantic Web n-Tier Architecture is a paradigm shift in design.
It is based on the concept of defining the functionality of the architecture in terms of a Business Vertical’s Domain as Industries Common Semantics and not by the information the solution processes at any given point in space and time.
This concept is not the Software Development Industry’s “Semantic Web” as defined by the W3C in 2001 and updated in 2004.
It is primarily based on Roy Thomas Fielding‘s REST Doctorate Dissertation dated 2000 and submitted as the “Architectural Styles and the Design of Network-based Software Architectures” from the University of California, Irvine.
A HATEOAS based Architecture
Hypermedia As The Engine Of Application State is the information transport concept for the Semantic Web n-Tier Architecture.
There are many technologies and methodologies used to deliver the architecture above.
The sections below list the tools and technologies:
+TECHNOLOGY PLATFORMS
- .NET – 4.5+ Framework
- C# – 4.5+ Object Oriented Programming (OOP) Language
- File Repositories – LDAP and Content Management APIs
- Mobile Devices – Native Mobile Device Platform Languages
+WEB SERVICES
- Inter Information Server (IIS) – Web Services
- Amazon Web Services (AWS) – Information Web APIs
- Apache Hadoop – Big Data Cloud Services
+DATABASE SERVICES
- Microsoft SQL Server – Data Modeling
- Microsoft SSRS – Reporting Services
- Microsoft SSIS – Integration Services
+DEVELOPMENT FRAMEWORKS
- Entity Framework – Object Relational Mapping (ORM)
- MVC – Microsoft Model/View/Controller (MVC)
- HTML 5 – Semantic Web Pages
- Cascading Style Sheets – Client-side Webpage styling
- JavaScript – Client-side Code
- JavaScript APIs – HTML 5 and CSS3 Integration
- AngularJS – JavaScript Framework for the Presentation Layer
- PhoneGap – HTML 5 Fast Entry-level Mobile Device Wrapper
+DEVELOPMENT TOOLS
- ReSharper – TDD Refactoring and Code Standards Compliance
- JIRA – Bug Reporting
- JIRA Agile – Agile Development Management
- NUnit – NUnit for Automated Development Testing
- MOQ – Mocking Framework for True Unit Testing
- PostSharp – AOP Cross Cutting Concerns
- Adobe Creative Cloud – Application Development Suite
+DEVELOPMENT CODE MANAGEMENT
- GitHub – Code Source Control
- Atlassian Source Tree – Code Management
- TeamCity – Continuous Integration and Smoke Testing
+DEVELOPMENT PROCESSES
- Agile Sprints – Scrum for Iterative Code Development
- Acceptance Test Driven Development (ATDD) – Acceptance Criteria
- Behavior Driven Development (BDD) – Automated Acceptance Testing
- Test Driven Development (TDD) – The Test First Development Method
- Domain Driven Design (DDD) – Business Domain Model Driven Design
- REST Web APIs – Self-descriptive JSON and HTML Hypermedia
- Aspect Oriented Programming (AOP) – Cross Cutting Concerns
+DEVELOPMENT BEST PRACTICES
- Design Principles – S.O.L.I.D. plus Core and Code Principles
- Code Standards – Well-defined Development Standards
- Code Reviews – Disciplined Development Code Standards Review
- Design Patterns – Designated Development Design Patterns
In Conclusion …
The underlying premise behind the Semantic Design Architecture is the belief that the Vertical Business Domain semantics of a Business are stable.
The representation of the functionality of the Business Domains services is more global than the information being delivered.
The requirements of a Health Care vertical to support a company’s employee benefits package are not very different from one provider to another.
In some Vertical Business Domains are actually defined by regulations.
By creating Industry-centric semantics that define the “What” of a Vertical Business Domain the solution can define “How” it will deliver the content in a non-temporal fashion.
This concept creates a vehicle that is extensible over time as the semantics will generally not change over time but the information structure will.
The Delivery of Information
will be Dynamic to the
Nanosecond of its Request
Wisdom Pearl # 122 – Open Your Mind to Possibilities
There are Generally a Hundred Ways to Accomplish some Task
… But Only a Handful of Good Ways
…… Have an Open Mind to other Possibilities
The following two tabs change content below.
I am a Principal Architect at Liquid Hub in the Philadelphia area specializing in Agile Practices as a Certified Scrum Master (CSM). I use Test Driven Development (TDD) and Acceptance Test Driven Development (ATDD) with Behavior Driven Development (BDD) as my bridge to Agile User Stories Acceptance Criteria in a Domain Driven Design (DDD) implementing true RESTful services
Latest posts by Brad Huett (see all)
- DevOps: A Bridge to Your DevOps Culture - March 25, 2016
- Embracing Test Driven Development (TDD) - March 25, 2016
- DevOps: Delivering Agile Projects - March 25, 2016