Enterprise Architecture
Speaking @ SoCal .NET Architecture Users Group – Implementing SOA Design Patterns with WCF
I will be speaking at the next SoCal IASA chapter meeting will be Thursday May 17, 2012 at Rancho Santiago Community College District, 2323 N. Broadway, Santa Ana. Meeting starts at 7:00 pm iA, pizza and networking 6:30 pm. RSVP by emailing to mike.vincent@mvasoftware.com if you plan to attend.
Implementing SOA Design Patterns with WCF
Service Oriented Architecture (SOA) is an architectural design pattern where it’s design is determined by few guiding principles mainly (a) Ser- vice compatibility is determined based on policy (b) Services share schema and contract, not class (c) Services are Autonomous and (d) Boundaries are Explicit. Implementation of these so-called SOA tenants requires a powerful framework which provides a unified programming model, reliable messaging, security, workflow service, interoperability and integration, syndication, meta-data exploration support, service versioning, REST-Ful endpoints and many other modern connected systems features. Both Service-Orientation and the Windows Communication Foundation (WCF) offer the promise of greater interoperability and ease of integration, but in order to realize benefits such as these we must evolve the way we architect solutions.
This session will be a hands-on introduction to SOA with Windows Communication Foundation. Speaker presents patterns using WCF that allows you to define descriptive, maintainable, yet extensible contracts and implementation of SOA tenants. Since SOA promotes loose coupling at the transport layer; you’ll learn how to create loosely coupled systems, the difference between web reference, service reference and channelfactory. The attendees will learn how to avoid anti-Patterns and leverage WCF to create extensible, versioned, responsive, interoperable, and easy-to- maintain services.
On Panel @ OWASP LA Security Summit: April 25, 2012, 3:00PM – 8PM
This Wednesday April 25th, I will be part of a panel at the OWASP LA Security Summit where Jerry Hoff VP, Static Code Analysis Division at WhiteHat Security, will be speaking about Webgoat. Shakeel Tufail, Federal Practice Director for HP Enterprise Security Solutions, will be speaking on “Software (In)Security – Challenges to securing software”. Noa Bar Yosef, Senior Security Strategist at Imperva, will be speaking on “De-Anonymizing Anonymous”. A concluding panel, moderated by Richard Greenberg, Information Security Officer for LA County Public Health, will have the speakers and myself discussing different aspects of De-Anonymizing Anonymous.
The focus of the panel is upon Recruitment and communication i.e. how Anonymous leverages social networks to recruit its members and pick a target, application attack i.e sequence the steps Anonymous hackers deploy to take data and bring down websites, DDoS i.e. the DDoS techniques deployed to take down websites and finally the key mitigation steps that organizations need to take if they ever become a target.
Location:
Four Points by Sheraton Los Angeles
5990 Green Valley Cir
Culver City, CA 90230
(310) 641-7740
RSVP at http://www.meetup.com/OWASP-Los-Angeles/
CloudCamp in LA – Wed April 11th
CloudCamp is an unconference where early adopters of Cloud Computing technologies exchange ideas. With the rapid change occurring in the industry, we need a place we can meet to share our experiences, challenges and solutions. At CloudCamp, you are encouraged you to share your thoughts in several open discussions, as we strive for the advancement of Cloud Computing. End users, IT professionals and vendors are all encouraged to participate.
CloudCamp LA
Location: CoreSite Data Center 900 North Alameda Street ** Free parking for participants in CoreSite’s lot accessible from Bauchet Street. Suite 200, Los Angeles, CA 90012
Note: CoreSite has offered to provide tours of the data center to interested attendees at 7:30pm and 8:15pm
Schedule:
6:00 pm Food, Drinks & Data Center Tours
6:30 pm Kick-off
6:45 pm Lightning Talks
- “The Economically Unstoppable Cloud” – Dave Nielsen of CloudCamp
- “Cloud Computing Risk Mitigation via Contract Negotiation & Vendor Management” by Thomas Trappler, Director of Software Licensing, UCLA
- “Why the Enterprise should care about Open Source in cloud” by Winston Damarillo, CEO, Morphlabs
- “Why Data Center Matters when Deploying Your Own Cloud” by Regis Malloy, VP Strategic Alliance, CoreSite
7:15 pm Organize Breakout Sessions
- “SQL & BigData” by Lynn Langitt
- “Cloud Security Alliance” by Jason Woloz
- “Intro to Cloud for non-techies” by Dave Nielsen
- “The future of Cloud Computing” by Dave Nielsen
7:30 pm Breakout Sessions Round 1
Unconference Session Topics TBD
Data Center Tour (round 1)
8:15 pm Breakout Sessions Round 2
Unconference Session Topics TBD
Data Center Tour (round 2)
9:00 pm Wrap-up
Architectural Choices: Configuration Store – file or database?
Even for a strong believer in convention over configuration like myself, there always will be the need of configuration parameters to be stored for any number of non-trivial applications. Like most things enterprise, the debate for configuration store and its management depends on the various factors including the environment, deployment methodology and type of configuration elements. Keeping registry keys out of picture (yes, welcome to 2012), let’s discuss the some pros and cons for each of the config store.
|
Config File |
Database |
| For values which cannot be retrieved before database is accessible or immediately need to be accessible upon application start such as database connection strings.Environment initialization related information;In most modern frameworks, file system watcher supports application restarts upon config change.
Frequently changing values for a non-distributed application.
Ease of version control, replication and distribution.
Editing can be potentially risky and erroneous. Not suitable for multiple environments due to consistency issues.
Environment specific settings (with shared commonalities) become a deployment with config files.
|
Ideal for synchronizing distributed environments and multiple nodes in the cluster with similar settings.In high availability scenarios (such as appfabric HA mode requires SQL server to be used for configuration purposes).
When changing parameters in a clustered environment, one database update would make changes available across the environment.
The applications need to have a polling mechanism to monitor the change such as SQL notifications and to efficiently cache these values in memory with eviction policy in place.
As compared to config files, a more user friendly UI can be built relatively easily to modify the parameters.
Multiple versions may require different key values.
|
The bottom line is that if it’s a large scale distributed environment, database is the way to go unless you have automated config file management system in place. Keep light-weight config files which rarely change for essentials such as environment-info service to retrieve connection strings or session parameters. For performance, simplicity and ease of use in homogenous non-clustered single server deployments, config files should still do.
“Web 2.0 Architectures” – A Big Picture Architectural Overview of the Web 2.0
If you are trying to decipher web 2.0 related terms, acronyms and buzzwords, you are definitely not alone. It is hard to quantify what exactly a web 2.0 design entails; “I know it when I see it” does not help explaining the characteristic features of modern web architecture including design patterns, core models, reference architectures and solution patterns. “Web 2.0 Architectures” by Governor, Hinchcliffe and Nickull attempts to crack the code of web 2.0 jargon and strives to help reader make sense of this ever changing web ecosystem.

The well written and organized book is divided into eight chapters which discuss design patterns, reference models and architecture artifacts. The web 2.0 patterns discussed in the book includes Service Oriented Architecture (SOA), Collaborative Tagging (folksonomy), Synchronized Web, SaaS (cloud computing), Persistent Rights Management, Mashup, Rich User Experience, Participation/Collaboration, Asynchronous Particle Update, ,Semantic Web Grounding and Structured Information. This categorization helps distinguish salient features of a web 2.0 architecture and help define what richness actually means in a rich internet application.
If you have been working in the field long enough, the meme map on page # 63 will help skimming through chapter 3 (which contains web 2.0 example sites) so you can get to the core of the book. Chapters 4 to 7 discuss specific patterns for web 2.0, models, and reference architectures. As mentioned in the book’s title as well as title of this review, “web 2.0 architectures” is focused on big picture architectural overview of the Web 2.0. Even though it’s not a 10000 ft. abstract overview whitepaper, it also does not converse nitty gritty details of building a 2.0 app using jquery and node.js. This text is about concepts, models, reference architectures and common recurring themes in web 2.0 sites. It does not concern itself with specific technologies and implementation details but rather talk about the common paradigm. Therefore, if you are considering it as a cookbook/recipes book for web 2.0 applications, you will be sorely disappointed. However, if you are a web engineer / architect or a technologist interested in the underlying design patterns and attributes of web 2.0, this book is for you.
Wadler’s Law
via Haskell’s Wiki, Wadler’s Law states that:
In any language design, the total time spent discussing a feature in this list is proportional to two raised to the power of its position.
0. Semantics
1. Syntax
2. Lexical syntax
3. Lexical syntax of comments
applies to enterprise architecture in general with the increasing order of actually quantified feature impact supported by data.
