miércoles, 16 de octubre de 2013

Think Distributed, Think of Components, Think of Services!

Distributed computing has been around for a while and it has evolved from technologies like, RPC, Common Object Request Broker Architecture (CORBA), RMI, COM, DCOM, COM+ etc. All of these technologies had to deal with many issues like location transparency, type marshalling, transport, object brokering, cross-platform invocation, object activation etc. These technologies led to many developers to extreme hysteria attacks, strong headaches, long days of insomnia, huge dosis of aspirins and coffee or even stroke.

Nowdays just some developers feel comfortable with old technologies (me included), fortunately for the new generation, those days of long IDL descriptors and late night screams are over. Services over "Firewall Friendly" TCP ports like HTTP, SMTP etc. have arrived, promising a more relaxed future for the new generation of developers that just don't care about our suffering fifteen to twenty years ago!

These new service models yet keep the same essence and deal with the same problems (marshalling, transport, proxying, interface description etc.) but in a more sophisticated fashion and hidding the nuts and bolts to the developer. 

Web services use WSDL based on SOAP 1.X to describe method signatures and types required to perform a "remote call" to the service. SOAP has an XSD to describe those services in order to allow type matching, exception handling, security and more. This descriptor is also useful to allow automation programs to build a convenient proxy class to handle all the necessary issues to perform a call on the remote service (type marshalling/unmarshalling, serialization, communication, binding etc.), but with the current proliferation of services, it seems that we are running toward a big chaos of services consumed by many clients with no hope of a better world.

To bring order to the chaos, we do require to change our minds and think in the future when we are designing. Questions like "Will my platform be elastic enough to allow vertical and/or horizontal scaling?", "Will it be flexible enough to allow to heterogeneous systems to plug/unplug easily?", "Will it be enough loosely-decoupled to easily change a component by another that extends or improves the original behavior?". These key questions beside others, will give the clues to achieve optimal designs over Service Oriented Architectures.

Cloud Computing, Grid Computing, Neural Computing are Software Distributed Architectural Styles that will be the predominant styles in the near future. A robust and well designed Service Bus is required to allow a successful achievement and almost a happy future.

miércoles, 28 de octubre de 2009

Cloud Computing..., is not just another term!

The term Cloud Computing, arises many encountered feelings, ideas and also bothers many people that are just uncomfortable with this weird name, but if we open our minds and take off our paradigms, this term brings a whole new age of challenges and changes for our business.

Cloud Computing refers in a more trascendent sense, to a set of models, services and technologies, that provide a complete platform, necessary applications and infrastructure, to operate a massive business ubiquitous, quickly, efficiently, reliably, secure and cheaper than ever before.

A business in the cloud, has the benefits of an automated, well organized and scalable Value Chain, that takes advantage of features and services that were only accessible to huge companies owning their propietary and extremely expensive infrastructure. Value chains like those for law firms, telcos, publishers etc. will be available on a highly secure, reliable, scalable and massive private networks, that will put new actors in scene, in almost the same conditions as their large scale counterparts and will promote innovation based on the extremely powerful available platform.

The term Cloud Computing, combines some well known models, services and technologies in a particular fashion, that makes it really different from existent technologies, otherwise this would become just an alternate cool name for the internet. These key elements are:

  • SaaS (Software as a Service: Refers to applications)
  • PaaS (Platform as a Service. Refers to the Value Chain)
  • IaaS (Infrastructure as a Service: Refers to the hardware, virtual machines etc.)

This set of models, along with the increasingly powerful hardware available nowdays, make it possible and bring this "disruptive" paradigm alive, to equate the rules and conditions to the marketplace scenario, for the whole actors.

New businesses driven by young and open minded professionals, probably will prefer to put their operation in the cloud and start quickly to enjoy the multiple benefits, while they save a lot of money by not acquiring expensive and hard to maintain assets (hardware, wires, software, maintenance team etc.)

Cloud Computing is here to stay, be aware of the new challenges it brings.

viernes, 2 de octubre de 2009

more than an architectural style/pattern

Every morning when I wake up, I thank god for the new day, my health, the family and for the pipeline architectural style!!

Pipelines (PL) provide enormous flexibility, Loosely coupled systems, policy, security and logging reinforcement and lot more. Pipelines allow to process the "data-in-flow" in an orderly fashion, and by applying an strategy based on pure "Separation of Concerns".

Modules plugged into the PL, are highly cohesive and loosely coupled, so if one of them is removed, upgraded or changed, the others keep working transparently. This is a very convenient pattern when data processing needs to be performed "on the fly". Because of its flexibility and modularity, every component in the PL watches the "data-in-flow" for some specific patterns (pattern recognition PATREC), in order to process, transform, change, adapt just the corresponding part the component is aware of (see the picture below).

PLs also allow to dynamically extend and change, existent behaviors by just de-registering/registering modules. PLs best practices along with Service Oriented Architecture (SOA) and ESB platforms, offer a promising future for business models looking for a "LEGO-Like" support on new products, that will reduce drastically the T2M.

jueves, 1 de octubre de 2009

LEGO-Like Business Models (the new challenge)

Nowdays, business challenges require a more dynamic response to the increasingly demanding client and market requirements. These requirements are ultimately oriented to QoS (quality of service), collaboration, intelligent search, social web, information ubiquity and many things more.
Modern and visionary companies, should be prepared for these more exquisite and exigent crowd of cybernetic clients, that uses a more specialized criteria to analyze and select amongst a myriad of information and service providers.
Legacy companies should stop and watch their overall picture, and map themselves on the current technology scenario to create a strategy oriented to make the necessary changes and adaptations to their Enterprise Technology Stack (ETS), in order to face and survive the forthcoming challenges. Fortunately, Service Oriented Architecture (SOA) strategy, brings a light into the darkness to solve this kind of uncertainty to many companies.
The following picture, depicts a possible ETS model:

The middleware ESB, provides business flexibility and agility required to adapt to those new requirements and business models, by providing transparent binding and modification of business rules and processes. It also provides full support for Enterprise Application Integration (EAI), IT Governance, SOA Federation, Policy Reinforcement, Cross Security, QoS and lot more.
Web Applications will consume business rules and processes published on the ESB, so reinforcement of policies and security issues are delegated to this layer. This business logic is always ready to use and can be dynamically updated, changed and registered, so virtual services will keep working according to their original service level agreements, and applications will take advantage of the changing rules and processes, as business needs and consumers demand new marketing strategies.