Quantcast
Channel: SOA Tech Magazine
Viewing all 31 articles
Browse latest View live

RESTful APIs are also SOA

$
0
0
I’ve been reading several papers, articles and technical documents lately on this subject. And I’ve become incredibly annoyed by several authors talking about “SOA Services” vs “RESTful APIs” as if they are completely different things and in occasions that compete.

The fact is that SOA is an architectural style, a paradigm, which promotes the use of software modules referred to as services that interact in order to deliver larger software solutions. That said RESTful APIs represent an important contribution to this style of architecture but conceptually speaking, solutions that implement REST APIs provide a service, they have service consumers, and the core principles on which  REST APIs services are built (i.e. statelessness, granularity, modularity, and others) and also the tools used seem pretty similar to what I would consider a SOA based solution.

Moreover using the term “SOA Services” to refer to XML/SOAP web services in my opinion is wrong. Although I admit that there is ambiguity when referring to web services that are defined using WSDLs, I don’t support this term. I rather use the term SOAP services. I’ve also heard the term “XML services” but who says that REST services can’t use XML (at least in the response)?
Service Oriented Architecture does not force the use of any particular technology; the complete opposite. As stated in the SOA Manifesto (http://www.soa-manifesto.org/) “SOA can be realized through a variety of technologies and standards”.

In fact, I see a lot of value in adopting WSDLs like document (like the evolving WADL) to define REST APIs and also use some of the WS-* standards to enhance RESTful services. A simple example is using WS-Security. This is a mature standard and instead of developers reinventing the wheel to address authentication and authorization concerns,  WS-Security could be used to secure REST services. I do however see a lot of value in implementing RESTful services in support of mobile apps demands.

In my view, there is no such thing as RESTful APIs vs SOA Services (or whatever some people call them). In my view, when talking about SOA, there are different types of services that can be created in support of different business problems. The business doesn’t care if you use SOAP or REST so long that the solution provided delivers the expected value to the business….don’t forget that.

Oracle SOA Governance 11g Implementation Officially Released!!

$
0
0
Yesterday, 19th of September, Oracle SOA Governance 11g Implementation was officially published.




Buy from:
http://www.packtpub.com/oracle-soa-governance-11g-implementation/book


Video:

Other Video Interviews:
http://www.youtube.com/watch?v=rLFTB0nKxg8

Description:

Lack of effective Governance is the single most common reason why organisations fail to successfully implement Service Oriented Architectures (SOA). Misalignment with business strategies, poor reference architectures, low quality designs and code, lack of service reuse and visibility over service operational metrics are just a few of the many reasons why SOA implementations fail.

In today’s technological landscape where the internet and I.T. can drive the success of a business, organisations must ensure that technology and business objectives are fully aligned and delivering the same goals.

Service Oriented Architecture (SOA) is an architectural style created specifically to address today’s fast paced technological challenges. When implemented properly, SOA can deliver future-proofed, flexible I.T solutions that are well suited to underpin the I.T. landscape of organisations today.

Oracle SOA Governance 11g Implementation illustrates how to successfully implement SOA Governance in your Organisation. To achieve this the book describes how goals and objectives need to be clearly captured and used to align Governance processes with Governance tools, Governance tools with people, and people with the different roles and responsibilities that are required to implement effective governance.

This book describes, by example, how to implement the Oracle SOA Governance suite of products in order to deliver design-time and runtime governance, with the aim being to deliver an effective and agile IT landscape that fully supports key business processes.

The book begins by giving the reader a short but concise overview of SOA Governance and outlines its mains goals and objectives. Issues discussed include the key SOA governance challenges faced by organizations, how a SOA Maturity Assessment can be used to identify the key Governance challenges and how to align projects to deliver Design-time and runtime governance.

The book then presents a Case Study that is based on real world SOA governance implementations from the authors and shows how SOA Governance, when done right, delivers many benefits to the organization.
The book shows how to implement each of the Products contained in the Oracle SOA Governance Suite to address specific design-time and runtime Governance challenges, all set in the context of the Case Study.

Main features available:

  • Understanding SOA Governance, its key concepts, goals and objectives and how to implement these using the Oracle SOA Governance Suite.
  • Execute a SOA Maturity Assessment in order to capture the SOA Governance challenges specific to your organization.
  • Implement Oracle Enterprise Repository (OER) and Oracle Service Registry (OSR) to address your organisation’s SOA Governance Design-time and Runtime requirements.
  • Implement Runtime Governance using Oracle Web Service Manager (WSM) security policies and by leveraging Oracle Enterprise Manager’s (OEM) key management features.
  • Achieve close-loop governance by feeding OER with runtime operational metrics and enforcing service reuse in OER.
  • Accelerate governance and also MDM adoption by implementing AIA 11g Foundation Pack.

What will you learn?

  • How to define the key goals and objectives for SOA governance and how to assess the current SOA maturity level within your organisation.
  • The key challenges that are faced by organizations prior to implementing SOA Governance and what benefits are realised after a successful implementation.
  • The Oracle Enterprise Repository product architecture, its key features, components and constraints.
  • How to create and configure OER users with suitable role based access control. How to create Compliance Templates using the Asset Editor and search for Assets in the OER console.
  • How to define the most appropriate bootstrap strategy in order to harvest your existing assets into OER and how OER provides a single source of truth for all enterprise assets promoting service reuse. Categorize Assets in accordance with your organizations requirements, create missing Asset Types using the Type Manager, manually submit Assets and model Assets relationships using the Asset Editor.
  • Make use of OER IDE plugins, OER policies and OER registration workflows to enforce quality gates and Governance policies.
  • The Oracle Service Registry product architecture, its key features, components and constraints and how to deploy it and use it effectively with OER.
  • Promote services between different environments using the OER and OSR integration capabilities and expose available services to both internal and external parties.
  • Implement basic runtime Governance with Web Service Manager and Oracle Enterprise Manager.
  • Enhance Runtime Governance by integrating OER with Business Transaction Manager and Oracle Enterprise Manager Grid Control.
  • Govern Oracle Architecture Integrations Architecture (AIA) with OER and the AIA Solution Pack and AIA Harvester.
  • OER and OSR installations tips.

Who this book is for?

This book is for Enterprise Architects, Solution Architects, Technical Architects and SOA consultants who want to successfully implement SOA Governance using the Oracle SOA Governance Suite of products.

Analytical Point of View on Technology Trends

$
0
0
A few weeks ago (just before Oracle Open World 2013) I had the pleasure to interview with Caroline de Lacvivier. Interviewing with Caroline was a fantastic experience as her questions were spot on but most of all it felt like an open conversation in a topic I am really passionate about rather than a formal interview with some reporter. After the interview I took notes of her questions and decided that I should elaborate more on my answers by creating this blog post.

The original articles produced after the interview can be found in the following links:



Following further elaboration on my answers:

1.            What new service/innovation is HCL Tech particularly proud of? Why?
Technology is evolving at the fastest pace ever seen before. We are starting to see CIOs shifting towards the adoption of flexible platforms and frameworks that promote a lower TCO, reduce time to market, and offer innovative products. But most importantly that will allow them to embrace the new trends such as mobile, bid data and cloud to improve business and become more competitive. We believe that our Fusion Offerings and our Accelerators can deliver that.

Our end to end Oracle Fusion offerings combine with our Fusion Accelerators, and our Cloud Offerings can deliver just that. Our offerings look at the complete Oracle stack, from Fusions Apps, Fusion Middleware, Engineer Systems (Exa Systems) and Cloud deployments and options. Then based on customer needs we select the right components of the stack to assemble solutions, capable of supporting our client requirements but must importantly deliver the desired business outcome. We also ensure that these solutions are designed to support the adoption of new technologies such as big data, cloud and mobile in the short, mid or long term.

Last but not least, I am particularly proud of our Integration capability and offerings. We have a very mature and robust integration center of excellence. The average skill level is very high that allow us to come up with solutions offering that are very innovative and diverse (for example our smart config solution which will be demo at open world).

2.            How are Agile development methods being used in your work or projects?
We always introduce an element of agile into our projects. Even in our day to day work activities we try to adopt elements agile. For example, daily scrum standup meetings are a fantastic way of keep communication flowing, get a quick view of project status and understand impediments.

For the execution of projects, especially on Integration, we often adopt Scrum. Or shall I say a flavor of it. I say a flavor of it because we usually work in distributed and onshore/offshore models so having standups with teams that are geographically distributed is not really possible. Also physical whiteboards wouldn’t work in this model. Instead we have daily or by-daily calls that follow with a similar structure of the daily scrum meeting and instead of white boards with use cloud tools such as JIRA / Greenhopper that can be accessed and updated from any location.

Why is Agile a fit?
In reality Agile in its pure way is not always a fit. Agile is undoubtedly a perfect fit for product development. This for many reasons, such as focus on quicker results, better ability to change, focuses customer experience and also improved quality. Also for the execution of small or medium size projects where certain amount of unpredictability is acceptable, Agile is also a good fit.

However for larger, multi-million dollar programmes of work, where commercial negotiations are unavoidable it becomes more challenging to use agile. What I usually see instead is a combination of some of the agile practices (as earlier said) underpinned by the use of traditional methods such as Rational, two towers, model office or even Sachimi (flavor of waterfall). I don’t necessarily agree with this, however I do understand that when several millions of dollars are at stake having a clear understanding of the scope, effort of work, costs, and deadlines becomes a critical factor.

Nevertheless, in these large programmes of work, even though at a programme level the holistic delivery approach might not be agile, I have been able to introduce agile at the project level.

What are the challenges?
I think one of the main challenges when implementing agile is the cultural change required on the teams that will adopt it. When people are used to do things in a certain way, it’s not always ways easy to make them change. Teams need to be educated on what Agile is, its benefits and practices before actually expecting them to adopt it. Sometimes this step is skipped. This becomes even a greater challenge for very large organizations. Being Agile a disruptive innovation it requires a cultural and mind shift.

Also agile requires a team with discipline as member of an agile team are expected to be more independent and proactive. It’s about actively completing tickets and if you have finish an activity, it should move on and complete another activity whilst always keeping the whiteboard updated. This is also related to the previous point.

Benefits and results?
For me the main benefits are quicker outcomes, improved tolerance for change and better product quality. All of these leading to fastest time to market and improved customer satisfaction.


3.            What do you see as the big career or technology opportunities for developers and architects this year and in the next few years?
I would say Mobile apps, Cloud Integration and SOA, API development, BPM, Information Management (mainly MDM, Big Data and Analytics), and Embedded Java (for Device to Device) are or will be all major trends.

Mobile Apps for obvious reasons. Use of smarts phones is growing extremely fast. At present surveys suggests that mobile device users prefer to use of apps rather than a browser to access information.

API’s are critical to for applications either on the cloud or on premise to made key functionality and information available. SOA also plays in important role here as APIs can be exposed as services but also adopting SOA governance and principles around API management ensures that both consumers and providers are getting the best out of these APIs.

Cloud Integration is a big one. Integration but must particular SOA is key enabler for cloud adoption. Going cloud doesn’t mean that the data will be automatically migrated to the Software as a Service system or it will be automatically integrated with other cloud or on-premise systems. To prevent ending in “accidental cloud integration” it is strongly recommended to define a cloud integration strategy and define how the use of SOA architects and other integration approaches can enable and accelerate cloud adoption.

BPM because companies are looking for creative ways to optimize and automate their business processes.  Robust BPM tools are required as it is proven that maintaining vast amount of process models in decks, or Visio diagrams is impractical and at the end it only creates confusion and misalignment. Robust tools BPM tools allow to centrally create, maintain, consolidate and promote processes. Tools like Nimbus are quite good at this. Other BPM tools like Oracle BPM Suite are excellent for actual execution of BPM processes, like for example processes that involved human workflow.

Introducing Data Governance, data quality processes and Master Data Management like for example Customer Data Hubs and Products Hubs, help organizations gain a much better understanding of their customers and products to mention a few. Having better understanding of the customer allows gaining competitive advantage as products and offerings can be tailored to what the customer really needs.

For the next few years, in addition to the already mentioned, I would add Big Data and Security.  Data is being produced at larger and faster rates than ever before. Having Information Strategies that support the introduction of platforms that allows to the consumption and exploitation of large amounts of structured and unstructured data coming from different sources and then being able to analyze this data and use it to improve product and services can put companies in a unique position.

Another point is about data migration. Whilst more and more companies move to the cloud, data migration will be a critical activity. So I also see a growth in this sub-set of information management.

Security, on the other hand, is like a silent monster that in my opinion hasn’t yet awoken. I don’t think companies yet realized the importance of security and the investments that are needed in order to secure the information against external and most important internal threads. Cyber-crime is growing as fast or fasters than the mentioned trends. Very soon CIOs will realize how vulnerable their information assets can be if the right level of security across the entire stack is adopted. I think this will happen soon. You can already see in the newspapers an increased amount of reports around cyber-crime.

Last but not least, I foresee embedded Java development to gain a lot more popularity especially as the “internet of things” gains more and more popularity. I think the growth we can expect in data derived from Device to Device (or Machine to Machine) integration will be huge in the coming years.

4.            Where do you see as the less or declining career opportunities for developers and architects this year and in the next few years?
Platforms that don’t naturally support cloud deployments or provide a development framework for supporting multi-channel will become less popular by default. I think for example web development purely focused on PC browsers is naturally becoming less popular and there are no many opportunities there. However if the same web developer upskills a bit and transitions in to mobile or enterprise app development certainly more career opportunities will arise.

In general I think technologies that are too tight or thought only to work in the PC era are becoming less popular.

In the Oracle space I would say that any product that is now a “dog” (using Boston Matrix terminology). Products that are being actively superseded by new offerings such as Fusion CRM, Fusion HCM and others.

In the Oracle space we still see opportunities in the traditional Oracle Apps and its platforms. However in the years to come there we expect a shift from these traditional platforms towards Fusion Middleware related solutions like Fusion Apps and other new technologies and platforms such as Apache Hadoop / Cloudera. Also any technology that enables trends such as Cloud, Mobile, Social, Big Data and the “internet of things” (Device to Device) I expect to become very popular.

5.            How much of your organization’s development is done in Java? What other languages are used?
We are a 90.000 people organization with revenue of 6.3 billion. We do a lot of development in many Languages and for many platforms. Java of course is a key one but I couldn’t possibly tell how much of our development is done in especially in Java. Java is now by default embedded in many of the systems and we implement. Sometimes we don’t even have to write the Java code even when the platform is a Java platform. Instead we use GUIS and IDEs that abstract code writing. Other example is for example use of scripting languages based in Java such as GROOVY on grails (or simply grails)  and frameworks on top of it such as GRAILS. They ultimately run in a java platform but we write Groovy scripts. We of course write hard-core java code using frameworks such as Oracle ADF, ADF mobile or open source like JSF, Spring or even Struts or Jersey for REST web services.

We also support many other platforms such as Microsoft .NET and C#, ABAP for SAP, and even other popular open sources languages such as PHP and Ruby-on-Rails.

6.            What is/are the best development tool(s) you've started using or continued to use this year? Why?
Being in the Oracle business, we use JDeveloper and SQL Developer a lot. We used it in the past and will continue using especially as it keeps being extended with more add-ons and tools to support new solutions and languages. For SOA in addition to JDeveloper, we also use Eclipse, SOAPUI for testing web services, JMeter for performance test,  Jenkins for continuous integration. We also use CCI (Code Compliance Inspector)  to improve our code quality during the lifecycle and also Oracle Enterprise Repository (OER) to provide visibility over the assets available for reuse.

We have now built a new offering called smart config using Poppet Labs to automate provisioning and automatically deploy and build.

We also use Jira and Greenhopper to manage our agile projects. These tools are very useful when adopting agile when teams are located in several different locations.

7.            On which cloud platform are you developing? What factors played into the selection? What were the results, pro and con? What would you do differently?
We are working actively in the delivery of a full red-stack cloud platform. Our vision is to offer simple pricing models such as bronze, silver and gold.

Also as we implement very large scale Oracle based solutions, we are also using Oracle On-Demand cloud platform. With Oracle On-Demand environments it is possible provisioning Oracle software very quickly. This is a key benefit as it mitigates risks and accelerates the delivery of the actual project as we can focus more on the solution rather than infrastructure dependencies. Having Oracle itself managed their own software is also beneficial as they can use their own best practices and recommended tools to monitor, troubleshoot, config manage, provision, troubleshoot and  patch their own software.

My Summary of Oracle Open World 2013

$
0
0
This years was not only the first time that I attend Oracle Open World, but more over the first time that I presented in this event as well.  Overall it was a fantastic experience and it was worth every minute of my time not only because of the presentations and other sessions I was able to attend, but also the people I was able to network with.

Team USA Oracle won the America's Cup
Overall it was a fantastic experience but also exhausting as it was literally none-stop from 7am untill 1am (if I was lucky). Amongst the many things you could do in your spare time, the thing I enjoyed doing the most was actually the Oracle demos product stands located all over the conference centres. One could just pop up, sit down with an Oracle product manager and watch an actual demo, ask questions and even play with the tool. Because the person doing the demo was actually an expert, I was able go into details of the code, try the tools and also ask detailed questions. Some of the products for which I truly enjoyed the demos were API Gateway, Oracle Event Processing, Oracle Data Integrator, OBIEE, Enterprise Data Quality, BPM Process Accelerators, Oracle SOA Suite & Cloud adapters, and many others.

I was trying out Oracle Enterprise Data Quality (EDQ)
Adding to this my book (http://tinyurl.com/soagovernance) got officially published on Thursday the 19th just 2 days ahead of OOW. That said, I also had the opportunity to promote the book at the event. I have to thank a whole bunch of people from Oracle and also my employer that actually helped me promoting it. From Oracle I can highlight Tim Hall (Vice-President Product Management) who promoted the book heavily and also helped me distribute all the discount vouchers I had left, Peter Belknap (Director - Governance Product Management), Yogesh Sontakke  &  Mark Dutra both OER Product Management who displayed my book in their OER stand, and also Simone Gibs (BPEL Product Management) and of course Jürgen Kress (who doesn’t needs introduction) and Lionel Dubreuil  (Product Management) for inviting me to the CAB. From HCL I have to hightlight John Pridham (Head of Innovation Oracle Practice) -thanks a lot for your help and support throughout the event and Riley Roberts who helped me a lot with my presentation and to distribute my book at the stand, and Of course, Richard Tuner, Simon Pass and Martyn Capes. Overall the HCL team at the stand was great.


In this blog I want to share a bit of my experience. I have divided this post into three.

1- First section Media Interactions,   summarizes the series of interviews I had with magazines and also with Oracle.
2- In the second section, Sessions & Key Notes. I provide key notes from the sessions I was able to attend, details about my own presentation and also some relevant links.
3- The last section, Social Events, my highlights from the social events I attended.

(You can skip to a section by clicking on the links)

Media Interactions
Interview with SearchSOA TechTarget (Thursday 19th)
Prior attending OOW, I was asked by my employer HCL to take an official interview with online magazine SearchSOA TechTarget (http://searchsoa.techtarget.com/). I got really excited because I am a regular reader of this magazine so having the chance to contribute to it was overwhelming. 

Caroline de Lacvivier (editor at TechTarget) did the interview.  The interview was smooth and I really liked the way Caroline asked the questions and the way we engaged in the conversations. I think the interview went great and we really connected and this is obvious in the articles Caroline delivered from it:

This first article focuses more on general IT strategies around Fusion which I am responsible for defining at HCL. Caroline wanted to know HCL’s approach towards delivering business solutions that embrace new trends and how our end-to-end offerings built around the Fusion stack could help customer achieve business benefits:

http://itknowledgeexchange.techtarget.com/soa-talk/oracle-open-world-speaker-luis-weir-focuses-on-what-matters-the-customer/

The following article is about the controversial topic of HTML 5 vs Native OS apps for mobile apps development. She asked me a few questions on this and I was quoted a few times:

http://searchsoa.techtarget.com/feature/Mobile-developers-agree-HTML5-and-JavaScript-apps-fall-short

If you want to read more on this, I created the following post to elaborate more on my answers to Caroline

http://www.soa4u.co.uk/2013/10/analytical-point-of-view-on-technology.html

Interview with Computer Business Review (Thursday 19th)
In this second interview, the head of HCLs EMEA and ASIA PAC Oracle Practice, Richard Turner, asked me to join him in an interview with Duncan Macrae from CBR (http://www.cbronline.com/) to talk about HCL Fusion strategies and how we’re helping customers migrate from current Oracle Apps to Fusion. Richard did most of the talking however I had the chance to contribute a bit to the interview. Moreover the fact that Richard became an evangelist and an expert on the Fusion strategy that I produced for him felt great.

<<Not available yet! will provide link soon..>>

Interview with Bob Bhubart from OTN
This was a rare opportunity to actually meet Bob in person. This was the second time I had the opportunity to interview with Bob and I think this time I was I think more relaxed than the first one!


Bob started by asking a brief description of what the book was about, and then wanted to know about real life projects where we are putting in to practice the concepts, case studies and solutions described in the book. In this interview I talked about a project we are working right now where we are in fact implementing most if not all of the topics covered in the book.

Sessions, Key Notes
During the event I was able to attend several sessions and keynotes, attend a few social events organised for the Oracle SOA & BPM community and also walk around booths not only to collect goodies –which of course I did, but also learn about other vendors and SIs solutions and offerings.

Middleware Keynote: Accelerate Business Innovation with Oracle Fusion Middleware (Monday 23rd)
Thomas Kurian, EVP Product Development, Oracle

Full presentation: http://medianetwork.oracle.com/video/player/2687033686001

Excellent presentation and I although I know that Fusion Middleware it's a the very core of Oracle's strategy, it's always reassuring to hear it from the likes of Thomas and Demed L'Her (VP SOA Suite). I think SOA/BPM Suite, ODI and the rest of OFM products are definitely going in the right direction. Can't wait to try the new features though!. Only downside is that most of these features announced are actually going to be available in version 12c. So for some of us that one to use these features straight away, we have no option but to wait a bit longer.

OFM Conceptual Architecture Presented by Thomas Kurian
  • ADF Mobile: Build once deployed in multiple platforms. This is actually much needed (read this article on the topic to which I contributed http://tinyurl.com/html5vsnative)
  • SOA Suite: 
    • New Cloud Adapters, including one for SFDC
    • Mobile enablement: Support for REST and JSON adapters. This is great News as the existing HTTP adapter falls short and having to write Java in OSB to support this is also not ideal. API Gateway supports this feature so there is a slight overlap. This features also confirms my argument that REST is also SOA (read my post http://tinyurl.com/restissoa)
    • Superfast platform up to 20 times faster in Exalogic
    • Lighter footprint: This is good news as Weblogic is a bit too heavy to run especially when compared with its predecessor OAS
  • ODI: New low based ETL. More intuitive for developer and more prescriptive. Support for Oracle DB 12c.
  • Webcenter: 
    • Mobile Support: Mobile portals, Mobile Site Management and apps for content management.
    • Business User: Streamlined portal builder, external content intergation
    • Cloud services: document sharing team workspaces, integration with on-premise content
  • Identity Management:
    • Single Sign-On for mobile apps
    • Robe based access control and management support for devices and mobile.
    • Identity for Hybrid Enteprrise: SaaS, partner and on-premise support.
Oracle Fusion Apps: Overview, strategy and roadmap (Monday 23rd)
By Chris Leone (SVP – Fusion Apps)
In general I think it was a good session.  I like the example that was given around putting social media into context of enterprise apps and business processes, even though it reminded me a bit of the film the “The Interview”.  Key takes away:
  • Overall strategy: Focus on a modern UI and user experience based on a common platform
  • Core Fusion tenants:  Standards based solutions (i.e.  Java & ADF, HTML5, security, etc), strong focus on user experience and extensibility.
  • Oracle Public Cloud covers 3 main: Application Services, Social Services and Platform Services,  all underpinned by Oracle’s Common Infrastructure Services
  • Key differentiator for Oracle Public Cloud: Support for native Java language to create/customise Cloud services. This instead of the high level and restricted languages created by other cloud vendors.
  • Oracle has spent more than $27 billion since 2005 in R & D. Only in 2013 it spent $4.8 billion.
  • Oracle cloud existing user base facts: 21 million users, 10k companies in 180 countries supporting 34 languages.
  • Mobile: Oracle Fusion Tap. Excellent app and like the demo. I like the way the demo put social media into the context of apps and actual business processes.
  • Video Share feature on Fusion Tab for ad-hoc video sharing in enterprises. Seemed also an excellent feature.  I think there is currently a gap in the market for enterprise focused youtube like cloud apps.
  • It was mentioned that Talent Management is priority #1 at C-level. I did some research of this and it didn’t seem clear to me this is the case. However it was evident that it is at least in the top 5  of priorities.
  • In a survey made to ERP customers, 74% said that they wish to transform their ERP solution and 48% said that their ERP systems are out-dated. I think this is a really powerful –eye opener insight.
  • Final take away get ready for Fusion adoption by defining a strategy and roadmap for the future, then defining a solution suitable to address business goals and that reduce complexity and increase automation all leading to achieving operational efficiencies. Something obvious I would say however given the amount of customers without dated ERPs seems like a good point to highlight.
Using Patterns to Simplify Integration of Cloud Services (Monday 23rd)
This was a panel session held by Simone Geib, Rajesh Raheja, Vikas Anand and Ravi Sankaran, all Oracle SOA product managers.  It was an excellent session because it was basically an forum of discussion whereby attendees shared the challenges of integration with cloud applications like for example SFDC. It was great that many agree that session management on SFDC is a pain and that an adaptor was needed.

In fact because the session was turning into a SFDC integration discussion and many of us were not happy on the fact that there isn’t yet anything out of the box to integrate, Vikas Anand anticipated an announcement and informed everyone that a Cloud Adapter including a Sales Force adapter was developed and would be available as a patchset of SOA Suite on top of PS6.

This news made my day and I was really pleased to hear this.

Flexibility and Fusion: How to Drive Value with Innovative Fusion Middleware Solutions (Tuesday 24th) by Luis Weir
Although I submitted a few papers this year to talk about SOA Governance adn my book, SOA success stories on clients, and our SOA offerings in general, none of them got selected this year. I was also told that this year many SOA papers didn't get selected. So I guess I was lucky to had the opportunity to do a half an hour presentation on our Fusion and Fusion Middleware solutions applied to HCM and our success stories. 

In the presentation I discussed the benefits of adopting Fusion when it comes to exploiting new trends such as cloud, mobile, social media and big data. Later in the presentation I described a Fusion Reference Architecture for Fusion that depicted not only Apps but also the key Fusion Middleware components such as BPM Suite, SOA Suite, ODI, Webcenter, IDM Suite, and others. My colleague from the US and Fusion HCM expert Vamsi Reddy, joined me at the end of the to talk about one of our Fusion success stories in which he played a key role.

The actual place where I had to present wasn't great (it was a huge saloon and I could not directly see everyone) , but the overall attendance  was good (about 30 people attended).

If you want a copy of the presentation, drop me an email to luis.weir@hcl.com and I can send it.

Why Customer Experience Management Is Ranked the #1 Investment Area by CEOs (Tuesday 24th)
Presented by Steve Cardell, President of HCL, it was a full house and an amazing presentation. Unfortunately I could not attend as I was presenting at the same time. But trust me,  I wasn't even close to having as many attendees as he did!

Many commented that Steve must have a native talent to present in public as he does it so well that it feels like presenting in front of more than 300 people is easy. Well done Steve. I am really proud and honored to work under such leadership.

Here's the full presentation:

Cloud Key Note (Tuesday 24th)
I was a bit disappointed that Larry Ellison didn’t actually show up in his key note, and I guess that half the audience (of about 10k people) were even more disappointed than me because they left (more on this http://tinyurl.com/larryskipskeynote).

Fortunately Thomas Kurian was around to save the day and pulled it off. At the end I was happy with the keynote.  I did however found some similarities with the Oracle Fusion Apps presentation by Chris Leone regarding some of the cloud announcements. However the Demo done by Thomas whereby he actually created a database and Weblogic server on the cloud was good and it really looked simple, however until I try it will not jump into conclusions. Key takes away:
  • Oracle Cloud Marketplace: A portal to browse, try and buy business applications developed by Oracle partners
  • 3 big announcements on Oracle Cloud (http:cloud.oracle.com)
  • Oracle Database Cloud Service: supports 11g or 12c, single node or RAC and support for data guard.  A 3 tier service: 
    • Basic (pre-configured and automatic install, managed by customer)
    • Managed (fully managed by oracle)
    • Maximum Availability (fully managed by Oracle with maximum availability)
  • Java as a Service:  Basically a dedicated Weblogic server on which java apps can be developed fully in the cloud. Similar 3 tiers as: basic, managed and maximum availability.
  • Infrastructure as a Service:  Not a new service however it now supports:
  • Storage service
  • Compute Service (for example to deploy app servers to develop apps in languages such as C++, Ruby, and others). Fully isolated environment.
  • Others coming: Single Sign-On, and In-memory cache.
In summary, Oracle is finally targeting the cloud market aggressively and products strategies are being realigned for the cloud.

Full Presentation: http://medianetwork.oracle.com/video/player/2690987615001

Unlocking Innovation and the Value of Embedded Intelligence on Devices (Thursday 26th)
Presented by Edward Screven - Oracle Chief Corporate Architect, this was I think one of the best presentations I attended over the event. It was so good that I didn’t even look down to take notes. Anyhow here is what I can recall:

Internet of Things
  • IoT = Internet of Things. Basically devices interconnected and that constantly data. The key thing about this concept is that this can be applied to any device. From day to day items like watches, shoes, anything, to industry such as logistics to improved supply and demand and transformation. It really is a mind blowing concept.
  • Expected that by 2020 98% of growth in IT will come from platforms in support of mobile devices and mobile apps.
  • Exponential growth expected in coming years in Machine to Machine (M2M) based integration. Consists of 3 stages:
  • M2M consists of 3 stages:
    • Acquire and transmit data: It was described how Java for embedded devices can be used for this. Because so many people in the world already knows java, no new skills are needed.
    • Integrate and secure: This is where Oracle Fusion Middleware adds value as Service Bus, SOA Suite, OEP, IDM Suite can be used in support of integrating and securing data coming from devices. 
    • Analyse and act: Basically use of Big Data technologies to exploit the massive amount of data generated by trillions of devices.
  • At the end of the event, some of the winners of the America’s Cup came to the stage to talk about how they win and how they managed to pulled it off. I recall Ian “fresh” Burns (Head of Performance for team Oracle) saying when responding to a questions “we won not only because of the software we had but mainly because of the people and the way we managed to work together as a team”. That for me was a killer phrase. That for me is the true meaning of Governance: tools, people and processes working together.

More Keynotes that I could not attend but worth watching if you have the time:

Oracle Database 12c In-Memory Database and M6 Big Memory Machine
Larry Ellison, CEO, Oracle

Transforming Businesses with Big Data and Analytics
Mark Hurd, President, Oracle

Social Events
OTN Meet-Up in the OTN Lounge (Tuesday 24th)
This was a really nice get together organised by Bob Bhubart.  He invited several of the more passionate and talented individuals on Oracle technologies out there. It was great to meet so many ACE directors together, of which I can highlight Hajo Normann! With whom I had a great time not only because he’s really fun as a person, but also because we share a common passion in the subject of Ontologies and Semantics for Web Services.  It was a pleasure and privileges to have been invited to that event and really enjoy the nice and cold Sierra Nevada ale that was served.

Fusion Middleware Partner Community Reception (Tuesday 24th)
It was again a really nice venue organised by Jürgen and had the chance to meet and talk with many Oracle product managers. My best part was when I saw Tim Hall entering the venue holding high the copy of the book I gave him.

Treasure Island: Maroon 5 & Black Keys (Wednesday 25th)
The venue was great and Maroon 5 sounded really good. I am not a huge fan of them, but I thought that their sound was very clear. The Black Keys I don’t know why but didn’t sound as good. I enjoyed it a lot though.

Lots of Food!!

Customer Advisory Board (CAB) and CAB Reception (Friday 11th)
I was under NDA so I can’t say much about the CAB apart that it was absolutely great. I really enjoyed meeting so many passionate customers many of which were in fact customers of HCL which I didn’t know about and meet there.

Also the Governance session held by Tim Hall was awesome. I like his style of presenting. Very relaxed, easing going, but full of info and strong / passionate opinions. I think that’s the way it should always be.

The after-even dinner was held at Tres (http://tressf.com/). The food was so good that I could not stop eating. Overall I really enjoyed the event and really had a chance to spend some quality time talking with other geeks like me and talk about technology details that I can’t talk about with many people.



For me the best part of the event was being introduced to the owner of the Tres restaurant; Dave Stanton. As Tim Hall said when he introduced me to him: “Luis, this is Dave, the father of web services”. That was quite a moment, and certainly wasn’t expecting it. It happens that Dave is an entrepreneur as not only he’s the owner of Tres, but also founder of Force by Design, a service company that helps customers adopt cloud services such as Sales Force.

The moment only kept getting better as Tim and Dave started talking about their tech gigs and other tech stories from the past. At some point it felt as if they were talking about some alien technologies that I've never heard of, and trust me, I know a lot of technologies. It was an awesome moment. More on Dave available in the foreword of my book (http://tinyurl.com/soagovernance) written Tim himself.


And that's all! hope you enjoyed my post!

Oracle SOA Governance for the Business

$
0
0
I created this presentation to provide a quick overview of what SOA Governance is all about and the relevance it has to business. In only a few slides you will appreciate the value of SOA Governance for the business, what SOA Governance is and is not, the processes required to support it and the Oracle tools that can be used to ensure that your SOA implementation delivers value to the business.
 

I hope you enjoy it!

9 Tips for Organizational Maturity in SOA

$
0
0
One of the greatest challenges to implementing SOA has in fact nothing to do with the intrinsic complexity behind a SOA technology platform. It is widely recognized that the real difficulty lies in dealing with people and processes from different parts of business and aligning them to deliver enterprise wide solutions. This is not only true in the case of SOA architectures but rather a challenge faced in systems design in general. As it has been nicely put by Conway’s law: “organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations”.

Following 9 tips that have helped me bridge organizational silos by improving communications and collaboration between teams/departments and also by providing visibility over available assets:


1.   Implement SOA Governance or Formalize It
Governance is about aligning people, processes and tools and creating an accountability framework so that it is clear who owns "what", and how and when "what" is done. Create a well-defined SDLC with clear roles and a clear RACI matrix. Ensure that everyone understand the contributions expected of them and value they add to the solution(s). If you already have this, then formalize it by communicating it and making it accessible to everyone (see following tips).

For further info you may refer to:

SOA Practitioners Guide: For me this is a true gem. Even though it was created 7 years ago, the concepts and guidelines described in these documents are still applicable.
http://tinyurl.com/SOAPGPart1
http://tinyurl.com/SOAPGPart2
http://tinyurl.com/SOAPGPart3

SOA Governance Technical Standard: A very robust although conceptual Governance Framework by the Open Group.
http://www.opengroup.org/soa/source-book/gov/intro.htm

Oracle SOA Governance Implementation: Based on real live use cases and many years of experience implementing SOA and SOA Governance, I wrote this book to share a practical and pragmatic approach to implementing SOA Governance using the Oracle Governance Suite.
http://www.packtpub.com/oracle-soa-governance-11g-implementation/book

2.   Staff the right people for the right roles
For example, the role of a SOA Architect should be as much about integrating people as it is about integrating systems. Dealing with people from different departments, backgrounds and agendas is a huge challenge and must never be forgotten.  The SOA architect role requires someone that not only has sound architectural and technological background but also has charisma, interpersonal skills and can communicate to the business and technical teams equally. In a nutshell it requires someone that can connect people and is capable of selling solutions suitable to addressing different point of views

The following extract from my book describes the different roles and responsibilities’ usually required in a SOA implementation. Ensure you get the right people for the  right role!

Roles in SOA
·         C-Level executive sponsors: Although not depicted in the diagram, C-Level sponsorship (i.e. CIO, CTO) is imperative in any SOA implementation. Having the right level of sponsorship will ensure that the organizational, behavioral, and cultural changes needed to implement the governance processes and procedures are embraced by the enterprise and not ignored.
·         Functional/Business analyst: Responsible for producing suitable functional requirements such as functional design documents, future process model, and/or business rules catalogue. The functional analyst should, among other things, engage with the business to ensure that all the functional requirements are well understood and with the technical and solution architects to ensure that the requirements are presented in an appropriate format.
·         Enterprise architect: An enterprise architect is responsible for ensuring that the solution being delivered by the project not only delivers to the desired business goals and can be successfully traced back to its original requirements, but also ensuring that the overall solution aligns to the wider enterprise strategies and standards.
·         Solution architect: Solution architects are responsible for producing solution architectures, capturing the non-functional requirements and also ensuring that the functional requirements are consistent with the solution as defined in the solution architecture. The solution architect may also participate and/or influence the definition of detailed designs, and may as well take part in the approval or rejection of these documents. Note that this is a well-established role and this text only aims to provide a brief overview of the role.
·         SOA architect: The SOA architect is a subject matter expert (SME) in the technologies in context (for example Oracle SOA Suite 11g) but also understands and practices general architecture principles. The role of the SOA architect is to:
1.     Analyze all of the requirements and ensure that these conform to the expected level of quality.
2.     Discover and catalog the SOA Assets and ensure that these can be traceable backwards and forwards.
3.     Provide technical leadership and guidance to the design and development teams.
·         SOA designer: Responsible for providing suitable detailed designs that successfully deliver all of the desired business and technical functionality. The designer is also responsible for providing further clarification and guidance to the development teams. An SOA designer will also create the XML assets such as WSDLs and schemas, and define the unit test scripts that should be executed by the developer.
·         SOA developer: Responsible for building and unit testing SOA services. The developer is also responsible for packaging the code ready for release, and for producing any relevant documentation that is required to support the deployment of the code (such as release notes). The SOA developer may partially contribute to the deployment and monitoring of services.
·         SOA testers: Test teams are responsible for defining and executing the test scripts to support different testing stages (for example, system test, system integration test, user acceptance test, performance test, among others).
·         SOA support specialist: Responsible for the deployment of SOA services between different environments and also monitoring of the SOA infrastructure. Once a service has gone live, the support specialist is also responsible for performing bug fixes and regression testing on the code.
·         Configuration manager: Owner and gatekeeper of code packs and releases. This role, among other things, coordinates and decides which releases can be promoted between environments.

3.   SOA Technical Working Group
Create a SOA technical working group with key individuals from different departments and roles (i.e. business analyst, architects, support specialists, enterprise architects). This group should get together (perhaps on weekly or monthly basis) with a clear agenda to talk about topics such as the SOA projects pipeline, challenges and opportunities

The following diagram depicts suggested roles within this group:

SOA Technical Working Group
·         SOA Technical Working Group:Not a single role, but instead a collection of different roles and people that together have delegated authority and shared accountability for creation of design-time and runtime governance frameworks, and the enforcement of these into different phases of a project.

4.   SOA is part of Enterprise Architecture
Ensure that SOA has a presence in the Enterprise Architecture group and their meetings. SOA is a way of doing architecture and SOA is for the business so ensure that SOA has representatives at the level on which strategic decisions are made.

There is no better way to articulate this than the following image extracted from the following TOGAF page:
http://pubs.opengroup.org/architecture/togaf9-doc/arch/chap22.html
Open Group - Governance
5.   Be Agile, Think Agile
Methodologies such as Scrum promote knowledge sharing and collaboration. For example stand up meetings like the daily scrum ensure that the information between teams keeps flowing and everyone is up to date. Another important aspect of agile is to ensure that people get together face to face for stand up meetings. When face to face is not possible because for example the team is geographically distributed, alternatives such as setting up conference calls or video calls can be used (below are some useful links on this topic).

There is lots of material available online on the topic of Agile, nevertheless below there is some material that I’ve found useful:

Agile Manifesto: Good definition on what agile is all about

Agile / Scrum Cheat Sheets: Below a good cheat sheet from http://complexitymaze.com/2010/06/10/scrum-cheat-sheet/  
Scrum Cheat Sheet
Also:

Distributed Agile Links:
A must read post on this topic by Martin Fowler: 
http://martinfowler.com/articles/agileOffshore.html
Nice link on a post that outlines lessons learnt on distributed agile: 
http://www.ademiller.com/blogs/tech/2008/08/agile-2008-distributed-agile/

Agile Tools:
Jira (best when used with Green hopper):  In my opinion one of the best tools for managing scrums: 
https://www.atlassian.com/software/jira
Rally: I am currently using it at a client project and I think its good.
http://www.rallydev.com/
Scrum Wise: A very intuitive tool I’ve used.
http://www.scrumwise.com/
Excellent blog listing several Agile management tools:
http://agilescout.com/best-agile-scrum-tools/

Also look at the Gartner Magic Quadrant: http://www.techostan.com/docs/quadrant.pdf

Gartner Magic Quadrant for Application Management Tools
Some funny links:
A unique scrum review meeting: http://www.youtube.com/watch?v=Q6jMgmPIxmk
The complete opposite of Agile. What to avoid: http://www.waterfallmanifesto.org/

6.   Start Using Collaboration Tools
Ensure that the right tools are in place to promote team collaboration and also provide visibility over existing assets. For example, creating a shared knowledge portal using Webcenter for example and encouraging and rewarding staff for actively participating and adding content is a great way of letting teams get to know each other and work together. Use tools such as Oracle Enterprise Repository to provide asset visibility and enforce its use with the right level of governance in the lifecycle. Other tools such as Oracle Team Productivity Center can be of great value when dealing with large development teams.

Some useful tools:

Oracle

Free and SaaS
            Co-op: very clean UI supporting features such as share status updates, questions, links, and others.  http://coopapp.com/
            PBworks: Suite of tools including in-app instant messaging, live notifications of changes to work spaces, live editing of documents, voice collaboration, wiki, and others. http://pbworks.com/
            MemberHub: Group management and collaboration tool. http://memberhub.com/

7.   Internal Marketing
Engage your internal media and communications team to send out regular (but not too regular) communications to promote successful SOA deliveries and highlight the benefits realized. This is a quick and cost-effective way to promote SOA initiatives, its benefits and also get people on board.

I am not an expert on marketing however after doing some research on this below are some links I found useful:


8.   Social Gatherings Outside Office
Getting to know your team mates outside the office in a non-work related environment truly helps build team relationships and increase team morale which ultimately leads to improved cooperation and communication. Managers should fight their corner to reserve budget that can be spent on monthly or weekly social dinners, drinks or other events that get people together and talking. The benefits to the business that can be realized from this in terms of productivity as a result of the improved communications and improved employee satisfaction will be much greater than the funds spent.

9.   Sell SOA Benefits to C/D level and Secure Sponsorship
Last but by no means least; ensure that you have the sponsorship at C or D level. Without sponsorship from the top and right level of delegated authority, getting the approvals and budget required to accomplish the previously mention tasks will be unlikely.


----------------------------------------------------------
  
If you have any suggestions please post a comment and I will be more than happy to update this post!

----------------------------------------------------------

Blog by Luis Weir proofread by Jordan Campbell.

AIA Foundation Pack Architecture Overview

$
0
0
The Oracle Application Integration Architecture Foundation Pack (recently renamed to just Foundation Pack) at is Oracle's accelerator framework for implementing SOA-based system integrations. AIA FP and its prebuilt integrations such as PIPs were originally created to facilitate and accelerate the integration between different Oracle applications such as Siebel, E-Business Suite, PeopleSoft, and JD Edwards, among others. Customers looking to simultaneously implement and integrate several Oracle applications gain huge benefits from employing PIPs, as these significantly reduce the effort and risk involved with building interfaces to support business processes. Given Oracle's aggressive and continuous growth by acquisition, AIA FP and prebuilt integrations have become fundamental to rapidly integrate newly acquired products with their existing apps portfolio.

The AIA FP contains a variety of design-time and runtime artifacts that can be used when defining, designing, building, testing, and deploying SOA solutions. The following diagram presents an overview of the different components that build up the AIA FP:


The AIA FP consists of:
·         AIA Architecture Framework Standards
·         Service Constructor JDeveloper Plugin
·         Code Compliance Inspector (CCI)
·         Lifecycle Workbench
·         Composite Application Validation System (CAVS)
·         Setup Pages
·         AIA Message Resubmission Utility
·         AIA Solution Pack
·         AIA Harvester
·         AIA Deployment Plan Generator
·         AIA Installation Driver
·         AIA WSM Policies
·         AIA Composites
·         AIA Prebuilt Integrations
·         AIA Error Handling Framework
·         AIA Metadata

The preceding components will be described in the following sections.

Design-time Artifacts

These artifacts include tools, libraries, and other AIA assets that support the design-time phase of a project. These tools are:

·         AIA Architecture Framework Standards: Consists of artifacts available for use during design-time governance stages. These include a reference architecture, a methodology, reference process models, conventions, and the AIA object library, which is basically a collection of XML artifacts such as XSD's and WSDLs, available for use.
·        Service Constructor JDeveloper Plugin: JDeveloper plugin used to automate the creation of AIA services. At present this plugin only supports the creation of AIA Business Connector Services (ABCS)
INSERT IMAGE 9083EN_10_04.png
·         Code Compliance Inspector (CCI): JDeveloper plugin that can be used to check that code in SOA projects is compliant with AIA standards and best practices.
·         AIA User Interfaces: A number of web applications aimed at supporting a project through the different AIA development lifecycle phases. The main web applications are:
·        Lifecycle Workbench: This application provides a comprehensive console that can be used by business analysts, solution architects, and services designers, to streamline the analysis, definition, and decomposition of SOA solutions built with AIA.
·         CAVS: The Composite Application Validation System (CAVS) is a testing application that supports the creation of stub services to simulate back end systems that might be unavailable during early testing stages. CAVS provides a mechanism for services created in accordance with the AIA standards to programmatically route a payload to CAVS, without the modification of the composite itself.
·        Setup Pages: Basically a configuration page to set up error notifications, error codes, routing configurations, and application registries, among others.
·         AIA Message Resubmission Utility: It allows browsing through a list of faults and resubmit them based on specific criteria:
INSERT IMAGE 9083EN_10_05.png
·         AIA Solution Pack: This pack seeds OER with all of the asset types, categorizations and metadata required to fully govern AIA solutions and assets.
·         AIA Utilities: A series of utilities available for post installation use with the AIA FP. The main utilities are:
·         AIA Harvester: A command line utility tailored for harvesting AIA services and assets into OER.
·         AIA Deployment Plan Generator: An Ant utility that takes the Bill of Materials file (BOM.xml), generated from the Project Lifecycle Workbench pack, as input and generates a Deployment Plan file (<projectCode>DP.xml) and a Harvester Settings file (HarvesterSettings.xml), based on the information supplied in the BOM.
·        AIA Installation Driver: An Ant utility that reads a deployment plan generated from the Deployment Plan Generator and deploys all SOA artifacts specified in the plan to the target servers contained in the installation driver properties file (AIAInstallProperties.xml).

Runtime Artifacts

These artifacts include tools, libraries, and other AIA assets that support the runtime phases of a project. The supporting tools include:
·         AIA WSM Policies: A Web Service Manager policy set created by the AIA FP installer to globally attach security policies to any AIA composite deployed to a SOA server.
·        AIA Composites: A number of SOA Suite 11g AIA composites deployed into the SOA Server. These include: AIA utility services deployed during the AIA FP installation, AIA Prebuilt Integrations, and custom developed AIA services that follow the AIA FP lifecycle. The following screenshot shows the AIA composites deployed after installation of the FP:
·        AIA Prebuilt Integrations: Prebuilt integration solutions created by Oracle with the AIA FP. There are two types of Prebuilt Integrations:
·         Direct Integrations: Basically point-to-point integrations that manage data flows and data synchronizations between applications.
·         Process Integration Packs (PIPs): Integration accelerators that combine one or more integration styles, such as data-centric integration, web services, reference data query, and/or process-centric integrations, to deliver end-to-end integration solutions.
·         AIA Error Handling Framework: This provides a complete common error handling solution for services developed following the AIA standards. As can be appreciated from the figure, the main features of the AIA Error Handling framework are:

  • Support for other technologies such as Oracle Data Integrator (ODI) and Oracle B2B
  • Support for the main types of faults, such as system, remote, and business faults
  • Configurable error notifications
  • Integration with Human Workflow using the SOA/BPM Suite Worklist Application
  • AIA specific error logger

·         AIA Metadata: A set of XML artifacts that mainly consist of AIA specific XSDs, WSDLs, and other XML files, that are stored in the SOA Suite Metadata Service repository (MDS). The principle component of the AIA Metadata is the AIA Components. AIA Components contains the main XML libraries available for used in AIA FP. Enterprise Business Object(s) (EBO) and Enterprise Business Message(s) (EBM) are examples of AIA XSDs available for use in the object libraries. Enterprise Business Service(s)(EBS) is an example of AIA WSDLs Assets available for use in the service libraries.

For more information on AIA Foundation Pack you may refer to my book "Oracle SOA Governance 11g Implementation" which includes a chapter fully dedicated to this topic and includes a sample use case based on real live experience. Book is available in the following link or any other major book store.

http://www.packtpub.com/oracle-soa-governance-11g-implementation/book


SOA Governance FAQ

$
0
0
After more than decade implementing SOA, I’ve come to the conclusion that one of the reasons that prevent organisations from realising the benefits of SOA is the lack of some sort of governance in their SOA implementations. I have also come to the sad conclusion that even though this is well known fact, many (end customers and SIs alike) still lack understanding of what SOA Governance is and why is it needed. Having said that, I created this post not only for my own reference, but also share this knowledge for those wishing to improve their understanding on this amazing topic.

Hopefully this FAQ provides some concise answers to many of these questions.

R. In simplistic terms, SOA Governance is the alignment of processes, people and tools needed to ensure that a SOA implementation is successful. SOA Governance primary objective is to maximise the benefits that SOA can bring to the business and IT. One thing to bear in mind is that SOA Governance does not exist on its own; it is in fact an extension of IT governance and EA governance.



For technical communities, SOA Governance is usually seen as a discipline that defines the processes, the roles and responsibilities and the tools needed to successfully implement a sound SOA solution.

For the business community and also less technical people, SOA Governance means a discipline focused at ensuring that business benefits and also ROI is realised by adopting SOA.

2.     What SOA Governance isn’t?

R. SOA Governance as a discipline is often confused with other important disciplines and concepts of software engineering. This is mainly because the term governance as such as quite broad and covers several aspects of software engineering.

·          Standards: such as naming conventions, patterns, reference architectures, standards, amongst other, cannot be considered to be Governance.  Although these are important assets, if not enforce through a process they are often forgotten and out-dated.
·         Configuration Management, Version Control or Continuous Integration: Although these are very important disciplines within software engineering and contribute greatly towards adopting governance, without supporting processes, policy enforcements and the right tools, these disciplines can become an overhead and easily run out of control.
·         A Tool: Tools without structured process around it add little value and will likely end up not being used for its original purpose.
·         Review Gates: Having a panel (i.e. Design Authorities) responsible for approval or rejection of deliverables is an important aspect of Governance however without some sort of automation, robust traceability, policy enforcement, and control these can be time consuming, inaccurate and ultimately unmanageable.

3.      Why is SOA Governance needed?

R. Without some level of SOA governance chance of success when implementing SOA are minimum. This is because unlike other software architectural styles, SOA requires a good level of definition and analysis up-front before embarking into a SOA implementation. Costly lessons learnt have proved that.

Having said that, the following table lists the key problems that in my opinion could be solved by implementing SOA Governance.

Problem
Consequence to the Business
Lack of visibility over existing assets and its performance
Minimum asset reuse and duplication introducing extra costs (both in CAPEX and OPEX). Without a level of analytics it is not possible to determine ROI.
TacticalProjects over of Strategic Solutions
Projects have their own agendas which deliver short term benefits to the project but that add no long or mid term Enterprise value.
Poor decision making and Lack of accountability
No sense of ownership makes decision making, policy enforcement and accountability an impossible task.
Low quality of Assets which become difficult to maintain and change.
Higher complexity and cost of change introduces Risks to the Business preventing new and innovative solutions to be introduced.
Poor estimation techniques and inaccurate planning
Projects cost more than estimated mainly because of “unknowns”... (i.e. Rework, extra activities and deliverables, dependencies, complexity, and others)

4.      What are the objectives of SOA Governance?

R. The objectives of SOA Governance are should always be aimed at delivering tangible benefits to the business. By tangible it is meant that these benefits can be measured quantitatively and qualitatively and therefore there is no ambiguity and the positive results that SOA brings to the business.

·         Aligning the SOA strategy to the business objectives
·         Delivering a Framework  suited for Business Agility and Change
·         Aligning SOA to Enterprise Architecture
·         Providing visibility over existing Assets, its use and operational performance
·         Improving the quality of assets by enforcing policy and standards
·         Increasing the ROI by asset re-use
·         Reducing the cost of change and support
·         Reducing the risk of failure
·         Improving agility and promoting innovation

5.      What are the key components of SOA Governance?

R. At a conceptual level SOA governance consist of the following components:

·         A SOA Strategy: Define SOA objectives which are consistent with what the business vision and strategy is and aims at delivering business benefits
·         A SOA Governance Model: Defines the, governance processes, governance tools, governance roles and responsibilities, governance artefacts needed to implement governance.
·         SOA Design Time artefacts: All of the SOA governance related assets required to support the design-time aspects of governance (i.e. requirement elaboration, analysis, design and build). For example reference architectures, development standards and policies, programming standards and policies, tools such as repositories and/or agile management tools.
·         SOA Run Time artefacts: All of the SOA governance related assets required to support the runtime aspects of governance (i.e. test, deploy, monitor, maintain, improve, and retire). For example, deployment frameworks, testing automation frameworks and continuous integration, monitoring tools, runtime policy enforcement tools.

At a logical and physical level, we are talking about all of the assets such as processes, documents, tools and policies that have to be delivered as part of a SOA Governance implementation.

6.      What are the top challenges that prevent successful SOA Governance implementation?

R. From my experience the top 3 are:

·         Lack of pragmatism when implementing SOA Governance. SOA Governance can be define as complex as one wants. SOA is so broad and it covers so many aspects that if one do not apply the right level of pragmatism it is quite easy to lose sight of the ball and end up building a Ferrari when what was really needed was a BMW or worst a Ford.
·         Dealing with people and other organisational challenges. Because SOA spams and affects almost every aspect of the organisation and their systems, it becomes incredibly difficult having to deal with people from different departments, with different views and different priorities. This means that one might end up in the middle of a political nightmare just by trying to do the right thing….
·         Lack of governance in other areas of the organisation. For example, lack of IT governance or EA governance. Because SOA governance is an extension of these two, if these other types of governance are missing, it becomes incredibly difficult to sell the benefits that SOA Governance has to bring and therefore preventing securing any funding. Without senior sponsorship SOA governance adoption becomes almost impossible.

7.      What are the most common mistakes organizations make when implementing SOA Governance?

There are many common mistakes made when implementing SOA Governance however it is generally accepted that the most common ones are:

·         Misunderstanding of what SOA governance is and therefore lack of investment in the tools, processes and people needed to successfully implement it.

For example, many think that SOA Governance is just about writing a bunch of document standards (which get updated once a year) and expecting people and vendors to follow it.

Or for example implementing a tool but not defining the right process around it such as the tool in facts delivers value to the overall process.

·         Another typical mistake is implementing Governance purely at technical level without engaging the business. This means that the objectives of implementing SOA Governance are not focused at delivering business benefits. This means that investment made can’t ultimately be justified and thus converted to a benefits realised by the business.

·         Getting the wrong people to implement SOA Governance. So let’s say that the IT and EA department both have successfully implemented governance and they want to define and implement SOA Governance to ensure that the SOA implementation and its projects are successful. For this they hire a SOA Architect. However this SOA architect is a blue sky thinker understands the concepts and theory but has not practical experience in real live implementing SOA. The outcome will probably be an overkill solution that’s not pragmatic, delivers more complexity than was needed, no one understands it and ultimately the implementation has no buy-in from the key communities such as the developer’s communities.

8.      What Oracle tools do I need to successfully implement SOA Governance?

R.  The components that build up the Oracle SOA Governance Solution infrastructure are depicted in the following diagram:
·         Oracle Enterprise Repository (OER): Oracle Enterprise Repository implements a design-time governance toolset used to support service lifecycle and other key stages of a solution, such as service discovery, and to provide a framework to promote service reuse.
·         Oracle Service Registry (OSR): Oracle Service Registry is an UDDI version 3 compliant registry used to support runtime governance. It provides a runtime interface to the Enterprise Repository allowing service consumers to dynamically lookup service locations at runtime.
·         JDeveloper: Is Oracle's preferred integrated development environment (IDE) for the development of software solutions using Java, SOA Suite and other technologies such as SQL, PLSQL, XML, PHP, amongst others. JDeveloper offers a wide variety of plugins to integrate with other products such as OER and OSR.
·         Web Service Manager (WSM): This is a security policy manager that allows administrators to centrally define and manage security policies in a non- intrusive manner. Policies can be attached to services in order to enforce security and to enforce compliance to enterprise security policies. Policies can be attached during the design phases as well as at runtime.
·         Oracle API Gateway (OAG): Former Oracle Enterprise Gateway, OAG is a standalone for implementing robust security polices into services. OAG is typically deployed as a policy enforcement point (PeP) in demilitarized zones (DMZ) where services are consumed or exposed by applications located in untrusted networks.
·         Oracle Enterprise Manager (OEM): This is a web based application for managing and monitoring the Oracle based infrastructures on which services execute. The OEM SOA Management Pack is an add-on for Oracle Enterprise Manager that delivers a complete toolset for configuration management and monitoring of SOA infrastructures.
·         Business Transaction Management (BTM): Delivered as part of OEM (although requires separate installation), BTM as its name suggests is a tools that allows transactions to be monitored as they spammed across multiple systems. Unlike tools like OEM or Fusion Middleware Control that monitor transactions within their own containers, BTM uses observers to collect transaction information from different sources then using complex matching algorithms, it reconstructs the end to end transaction in a single graph. The sources can be anything from a J2EE application server, an MS Internet Information Server, to products such as OSB, SOA Suite and Webcenter.

Refer to the following Oracle website for more information on Oracle’s SOA Governance solution

9.      To what degree does successful SOA governance require organizational change?

R. In many ways. SOA Governance defines new processes that spam across different departments, it may require implementation of new tools and also processes around it, and also requires the creation of new roles and responsibilities.

It also implies that people from different aspects of the organisation need to interact and collaborate. One would think that this is not an issue, but in fact is one of the greatest challenges when implementing governance as previously mentioned.

In the following article I elaborate a bit more on this topic and also provide useful tips that can help reach organisational maturity.

10.      What impact, if any, trends such as Cloud, API development, Mobile Computing, Big Data, and the Internet of Things( IoT) have on SOA Governance?

R. All these new trends require and implement SOA one way or another. The fact is that all of these evolving technologies are in their core dependent on distributed computing as the systems and data that these new technologies depend and interact with are located all over the internet. For example, Big Data systems such as Hadoop, feed from structured and unstructured data sources located all over the internet. Mobile apps also require information to be made available to them preferably using light weight services such as RESTful services that could be located anywhere on the internet. IoT it's all about internet enabling devices that we use in our day to day life (watches, fridges, alarms, etc, etc, etc) and allowing them interact with intelligent systems which are located somewhere in the cloud. These systems would then help us become smarter and more efficient in our day to day activities by making sense of the data that is constantly being captured. Again, without some sort of efficient and distributed client/server communications this would simply be impossible

SOA as an architectural style and philosophy, was conceived to fundamentally support the concept of distributed computing whilst inheriting the best features from other paradigms such as Object Oriented Programming (OOP) and Enterprise Architecture Integration (EAI).

Moreover, all of these emerging technologies relay on Application Programming Interfaces (APIs) either to make their data available to other systems and/or apps or to consume data from other systems. Although initially the API movement evolved somehow independently of SOA architectures, APIs eventually evolved to become an integral part of SOA. This is because many of the problems that APIs were designed to solve are actually shared by SOA (i.e. support for a diverse of technologies and open standards, support for componentization and abstraction, deliver flexibility and promote reuse, etc). Even the tools use to create, monitor and managed API are the same or very similar to the tools used when implementing more traditional SOA architectures.

Having said that, SOA Governance, as a discipline, is aimed at ensuring that  people, processes and tools are all aligned towards achieving the same goal: delivering IT and Business benefits. The impact these trends have on SOA Governance? well, SOA Governance will have to adapt to support many new asset types (i.e. APIs) and support the emerging processes, tools and roles that are required to enable these new technologies to deliver benefits not anymore to the one company implementing SOA, but also to the many parties (businesses, people and machines) that benefit from these technologies. For example, in the case of APIs, there is another discipline known as API Management, but in reality this discipline is of an extension of SOA Governance however more focused on achieving similar goals but more specifically around APIs. The consumer of an API can be anyone on the internet: a person, a business or even a machine

11.      Are there any practical books on how to implement SOA Governance?

R. Although there are several books out there in the topic of SOA Governance, there isn’t in fact many in the topic of how to actually implement it in practice. For this same reason I decided to write a book on the topic.

If you are interested in knowing more about the book please have a look at the following link:

For regular updates on SOA Governance join the Oracle SOA Communities:

SOA Transformation through SOA Upgrade

$
0
0

Much has been said about Oracle SOA Suite 10g (or JCaps) upgrades to 11g and how features map between both versions. There is also plenty of information online about this topic both official and unofficial. It’s not news to many that for example SOA Suite 10g is currently in extended support and product will enter sustaining support by the end of 2014 (I will explain more about what extended and sustaining support means later in the blog). However one fact remains truth: There are still many companies out there running platforms that are (or soon will be) in sustaining support, and that don’t yet have an upgrade strategy. I say this based on my own experience as I am currently helping several customers do exactly this.

Having said that,  I wrote this blog in an attempt to give SOA experts, Integration Leads and Architects key pointers that can serve as inspiration to come up with a transformational approach when defining an upgrade strategy. Note that I am using the word “transformation” deliberately and I will explain why shortly.

Note that although this article is mainly related to the Oracle SOA 10g to 11g technology stacks, the approaches, tips and information provided in this blog should also be applicable when defining any technology upgrade. In fact, once 12c is more mature I will probably refresh this blog to cover 11g to 12c upgrades.

Following my key pointers to help you define your upgrade as a SOA Transformation:

1) Understand the product roadmaps and planning to move in advance
2) Take a SOA Transformation approach and not just a technology upgrade
3) Elaborate a SOA Transformation Roadmap
4) Understand current and future technology stacks and identify potential risks and challenges in advance
5) Define a service transformation methodology
6) SOA transformation also requires organisational changes and maturity

1)Understand the product roadmaps and planning to move in advance

This is one of the most important points and one that many have either failed to understand or have just ignored (hence why many companies still stuck in 10g and have no plan to upgrade yet). This is important because by understanding the product releases and features, release dates, and support lifeline you can plan in advance an upgrade approach and avoid having to do something tactically, in a rush and with limited budget.

Before getting further into this topic, it is critical that you understand the basics of Oracle product releases:

  • Oracle product releases: There are two main points that you need to be aware of when talking about releases: Major release and patch set release (also referred to as component release). Let’s take for example Oracle SOA Suite 11gPS6 which is the same as saying 11.1.1.7
    • Oracle talks about product versions in two different ways: 1) Product release name (i.e. 11gPS6) , 2) Product release number (11.1.1.7.x). Either can be used to refer to a specific product release, however I prefer the release number as it gives more detail.
    • 11 is the major release. so for example 10g to 11g actually means major release 10 to major release 11. A major release means that there is a significant change in technology platform. It usually also means that you can’t simply apply a patch but rather requires more planning and preparation as it might require having to install and configure separate infrastructure and more elaborated service/code migration
    • The “g” is for “grid”. This is more of a commercial/marketing thing. For example in version 12, it’s 12c where “c” is for cloud
    • PS standards for patch set. A patch set is a single patch that contains a series of patches. In the example discussed PS6 standards for patch set six
    • For details on how to read the product release number refer to: http://docs.oracle.com/cd/E28280_01/core.1111/e10105/release.htm
  • Oracle patching and upgrade terminology: Oracle has specific definitions for what patching, migration and upgrade means. Patching is basically  applying a patch to an existing installation. Migration is moving code from a third party product to an Oracle product. Upgrade means moving from one major version to another (i.e. 10g to 11g, or 11g to 12c).  For more info on this refer to following link:
  • Oracle support stages: There are 3 support stages:

1) Premier Support: This is where you want and should target to be as full support will be provided in terms of patching, security fixes,  better product certification with other products and less obvious but important there will be more people skilled in support teams to deal with products in this stage

2) Extended Support: Pretty much the same as premier support apart from the fact that you will have to pay an extra fee (on top of standard fee). Also extended support may not include certification with some new third-party products/versions

3) Sustaining Support: You should always plan to avoid going into sustaining support. Reason is simple: not only an extra fee will be require on top of standard fees, but Oracle will not create new patches or fixes for products in sustaining support. Moreover there will be less available Oracle support resources to help you with you issues as most of the engineers are already supporting latest version of the product (versions in premier and extended support)

Refer to the following documentation for more details on Oracle support stages and support policies:

Assuming that you have gone through the previous points, I created the following diagram to try and depict the evolution through time of the different Oracle SOA Suite releases and their patch sets along with their respective product support lifelines:

Product-Roadmap Based on this diagram and the information described in earlier points I would strongly recommend that:

  • Plan your technology upgrade to latest major release at least one year before extended support starts. This will ensure that you will always be in premier support
  • Try to keep up with latest patchsets. Note that there are constraints in extended and sustaining support around which patch set you are running (refer to previous links). Note that normally patchsets do not require re-coding and all migrations are usually assisted and can even be scripted. If you are worry about regression testing your code, look into implementing continuous integration or similar disciplines to automate execution of core test scripts (this is a best practice and you should try to do it anyway)
  • If you already too late for you meaning you are in extended support (i.e. running 10g) and have no upgrade planned or you are only planning upgrade at this point, then by any means try to do it properly just don’t go and rush it. Chances are that you may anyways end up having to run the platform in sustaining support, not ideal by any means, but also not the end of the world. So my suggestion would be don’t waste any more time and plan a transformation strategy (see my subsequent points)

2)Take a SOA Transformation approach and not just a technology upgrade

But what does it mean to take to take a SOA transformation approach?

Let’s say for example that you are looking at upgrading your SOA infrastructure to a new major release, let’s say 10g to 11g or 11g to 12c. A typical upgrade project would focus mainly on technology and would almost certainly aim at changing as less as possible the existing code and services. By simply doing a technology upgrade, one would not only miss the opportunity to leverage the new product features, product enhancements and latest best practices available  (because you would try migrate the code as-is whenever possible) but would also miss an opportunity to consolidate, rationalise and improve your existing services landscape therefore bringing benefits that would result in lower TCO.

For this reason, instead of focusing merely on the technology shift, take a step back and look at the bigger picture. Think about the potential benefits that you could bring to your organisation if you could also transform (not update or improve but transform) the processes and organisational/cultural aspect of the current solution that prevents realising such benefits.

How to know what benefits can be realised? There is always room for improvements.  There will surely be areas that could be improved and haven’t for different reasons. For example there is no budget or there is no sponsorship from above to make the necessary changes or simply there is no enough skills in-house to execute such changes. To identify such areas that could be improve best thing to do is to conduct an assessment of your current integration landscape as suggested in point #3.

Also because a transformation approach requires fundamental changes to the core processes, technology and organisational/cultural aspects of your SOA solution, it is imperative of success that you engage with different parts of your organisation as early as possible to sell your approach and get buy-in. The toughest part of a transformation project is nothing to do with technology, it’s in fact dealing the the organisation and cultural changes it brings. I elaborate further on this topic in point #6.

Last but not least, there is no project is there is no funding. So to secure funding you must get approval from CFO or the like (unless there is spare IT budget to spend on this, in which case you would still have to justify the budget needed to CIO or CTO). I always compare this to going to a bank and asking for a loan. The bank wont lend you any money unless they are sure that they will get the money back and with interests (benefits). The bank business is to lend you money, so they want to do it, but they qualify the risk and if it makes sense then they will do it. Is the same within an organisation. C-level and D-level executives want to fund projects that deliver tangible benefits. But they wont just give funding away without proper analysis that there is a return on any investment they make. So to prepare for this you usually need to:

  • Define a strong business case: The business case should express qualitatively and quantitatively why funding this initiative is the right thing to do. It should emphasize on the cost of doing nothing or doing it wrongly.  Furthermore the business case should not be based solely on the fact that your platform will run out of premier or sustaining support at some point. Yes this will certainly help, however to justify a transformation project funding you need a lot more substance. If you have some budget available and you don’t have the time to do this, you could get an expert to help you define the business case. Below some references that can serve as inspiration for this task:
  • To support your business case, define a SOA transformation roadmap which lists at a high level (but with enough substance so it looks thought through) the set of activities needed to get to where you want to be. Following point elaborates more on this topic.

3)Elaborate a SOA Transformation Roadmap

This may sound a lot more simple than it actually is in practice. In order to succeed in elaborating a roadmap you must understand:

  • Current integration landscape including architecture, maturity and service catalogues (see previous points)

Below a sample high level view of a roadmap.

Rodmap

From this sample high level roadmap I would like to highlight the following:

  • There are to major phases: Foundation Phased and Implementation Phase. Foundation Phase–as the name suggests, aims to deliver a strong foundation. Key design decisions, standards, reference architectures, enhanced software development lifecycles, methodologies and governance frameworks should be defined delivered in this stage. Implementation Phase focuses in the rollout of the new platform not only to existing projects that will have to be upgraded or migrated from other platforms but also by making the new platform available to incoming projects
  • Implementation phase starts with a pilot project. This is not a PoC but rather a real project with very limited scope but that use cases covers enough scenarios and test cases to ensure that the future architecture is robust enough to support known requirements
  • Once the pilot has been delivered a “lock down” should be defined to the as-is platform. For example if you are running 10g, you should not allow any more developments in the 10g platform once lock down has been put in place. Again this is easier said than done, and politics will kick in at this point specially as some influential and important projects will demand a solution
  • Transformation of  existing projects to the new 11g platform doesn’t have to be and should not be in a big bang. You should define a plan that allows you to run your 10g or other platforms in parallel to the new 11g platform so you can incrementally align projects which will –in a phased manner, implement the same services in your new 11g platform
  • New incoming projects will require support. Lots of support. Don’t just assume that providing  a link to some documentation will be enough for them to understand how to deliver according to the to-be reference architecture, guidelines and frameworks. One way of dealing with this is to assign some resources (ideally architects or designers) from your team into each of these incoming projects. These resources should act as mentors of the new solution and should coach on how to do things the new way
  • This won’t take a day and it will require planning and it will require proper sponsorship from the right level (I keep saying this and sometimes I feel that I sound like a broken record, however it’s so important that I don’t mind repeating it)
  • The following link provides some good tips when executing transformation programmes: http://www.itbusinessedge.com/slideshows/show.aspx?c=85374

4)Understand current and future technology stacks and identify potential risks and challenges in advance

This is a task that you will have to elaborate into detailed during your foundation phase. However even before you get to this phase, you should already have a good understanding of your as-is technology stack and how it maps to your to-be technology stack. Following an example of what I mean. The diagram shows how Oracle SOA Suite 10g and related technologies maps to the 11g suite and related technologies.

10gTo11g

There are several factors that you should understand before you even start putting together a plan. What you are looking for is factors that will drive higher risks and effort. For example you should be looking for understanding:

  • Upgrade paths: This no only applies to code but also to the code. For example, you should be aware in advance if there are specific restrictions in terms of minimum versions and patch sets that your platform and code should be on before doing an upgrade. You should also be aware of there are assisted ways of upgrading your core infrastructure as well as your code. In the previous diagram I depicted how some technology components of 10g maps nicely to 11g and how others don’t. For example, BPEL 10g and  ESB 10g maps directly to SOA Suite 11g BPEL and Mediator engines. It is also visible that there is an assisted / automated way of upgrading the technology and code. However it is not the same story for other components such as OBPM 10g, BPA 10g processes and WSM 10g. These will require manual re-coding (yes re-coding as there is no official wizard or tools am aware of to automate this). Some good information on this (specially on the topic of 10g to 11g):
  • Architectural and best practices : Even if there are guided upgraded paths for some technology components there are several other factors that should be consider if you truly want to embark on a SOA transformation and not just a technology upgrade. Don’t just use a wizard because they are available (also be warned about Wizards –see the following point). To truly transform, you should evaluate architectural factors as well as new best practices available. Ideally a foundation phase as previously described would target to set in stone your future reference architectures and best practices so this task become a lot easier. Based on the previous diagram I can provide several examples of what I mean (however you should come up with your own depending on your target architecture and best practices):
    • According to Oracle best practices, the strategic service bus in 11g is OSB and not Mediator. However if you have built services using ESB 10g the easiest way to migrate the code to 11g is by using the assisted wizards or tooling meaning that your ESB code will end up in SOA composites which will run in Mediator engine. This however doesn’t mean that you are making the best out of your to be architecture because in 11g for example, OSB has better routing capabilities. However in some scenarios migrating directly to Mediator might make sense. For example, if your service implements WS-Addressing (asynchronous services) as OSB does not supports this natively (there are work around thought but it’s not native).
  • Technology constraints: There could several changes in the technology stack that are less obvious and you will only find out after you start testing your code. You should try and identify this either by learning from other’s lessons learnt or engaging your vendor for detail feedback on this. Again using the previous diagram, I can list the following examples of what I mean:
    • Wizards don’t to it all: Even for the technology components where an upgrade wizard is available don’t just assume that everything will work once code has been upgraded. There are several things these wizards don’t take care off. I would recommend the following link for more details on this: http://www.slideshare.net/oracle_imc_team/oracle-soa-suite-upgrade-10g-to-11g
    • There is no MDS in 10g. Therefore if  in 10g you had all of your schemas deployed as web application and accessible via HTTP ideally you would like to move these schemas into MDS in 11g (you don’t have to, but this goes back to my point about best practices). This however would require some changes in the code (so mds references are used instead of HTTP references) and also the schema project itself (so it can be deployed to MDS via JDeveloper or ANT). Refer to following link for more info: http://redstack.wordpress.com/2011/02/28/deploying-your-canonical-data-model-to-mds/
    • If your 10g services consume other 10g services is by using concrete WSDL rather than abstract WSDL’s then you will run into issues. In case you don’t know the difference between the two, abstract WSDLs are usually generated by JDeveloper and do not contain any binding and/or port type information. Once a JDeveloper is deployed, Oracle SOA Suite automatically generates a concrete WSDL that actually refers to abstract WSDL but that defines the binding protocols and port types. In 10g during start up Oracle Application Server started each service in the same order that they were deployed. This ensured that if you had deployed your services in the right order, then they should all start correctly. However in 11g, Weblogic  Server starts the services randomly so if a particular composite depends in a concrete WSDL for a service that hasn’t yet started, then the service will fail to start. To fix this issue you should change your code so it refers to abstract WSDLs whenever calling another internal service. More on this: https://blogs.oracle.com/aia/entry/aia_11g_best_practices_for_dec
    • OBPM 10g (former ALBPM) doesn’t have assisted upgrade toolkit to 11g. So if you want to migrate OBPM 10g code to 11g you have to re-implement your processes. There is a chance that OBPM 10g  will have assisted upgrade tooling directly into BPM Suite 12c
    • WSM 10g also doesn’t have assisted upgrade toolkit to 11g. So if you want to upgrade WSM agents you should probably be looking at manually re-implementing them as 11g WSM policies and if you want to upgrade your WSM Gateways you should manually re-implement 10g policies into Oracle API Gateway (OAG)
    • Business Process Architect (BPA) Suite also doesn’t have assisted upgrade toolkit to11g. Some aspects of what BPA suite can do can be migrated to BPM Suite 11g. However more richer enterprise modelling features Value Added Chains, organisational modelling, and others will only be supported in BPM Suite 12c
    • Oracle Application Server 10g is no longer use in 11g and beyond. Weblogic Server becomes the core Oracle’s strategy JEE server

5)Define a service transformation methodology

It doesn’t have to be an overkill methodology. What you need is some concise steps which sets in stone the approach to follow when transforming a service from your existing platforms (i.e. 10g or other legacy) into your target solution. Purpose of the method is to ensure that all transformation activities are occurring following a consistent method and using the same set of guidelines and standards.

Method

6)SOA transformation also requires organisational changes and maturity

This is for me without a doubt the most complex aspect of a transformation initiative. This because you can change all tools and even upgrade most of your processes , however without having a behavioural and cultural change in your organisation chances are that the same issues you had in the past will repeat all over again. This is explained in detailed in my SOA Magazine article 9 Tips for Organizational Maturity in SOA also available in my blog www.soa4u.co.uk

New in SOA Suite 12c and AIAFP/OER Backward Compatibility Table

$
0
0
Finally Oracle SOA Suite 12cR1 (12.1.3.0.0) is out (http://www.oracle.com/us/corporate/pressrelease/soa-suite-12c-062614).Having implemented all versions of SOA Suite (10.1.3.1-5, 11.1.1.1-7) I am particularly more exited about this new release as I was when its predecessors were launched. And this is because unlike the previous releases, these versions is releases in the middle of major trends such as cloud computing, mobile integration, Internet of Thins, Machine to Machine, are starting to become main-stream and I see SOA Suite 12c as a fundamental building block to supporting all of these new trends!
Listing below some of the new features of Oracle SOA 12c that I am more exited about:
Is about the last point two points  (AIA/OER) that I want to talk a bit more, specially because both of them are governance related features.
Although 12c introduces many features which will make it easier to govern a SOA project, if you are using AIA or OER in 11g or if you are about to start a 11g project, you must take note of the following:
  • AIA Foundation Pack will not be available 12c meaning there is no, and my understanding is that there will not be an AIA FP 12c release. This means that I don’t expect AIA pre-built integrations to be created explicitly for 12c . This makes sense to me as the original purpose of AIA FP was to provide a SOA framework specially aimed to help Oracle Apps practitioners kick start integrations between Oracle Applications (remember that at the time SOA was still immature specially for the Oracle Apps community in which SOA was still a big unknown). Note that some backward compatibility will be provided in SOA Suite 12c by enabling the SOA Core Extensions during the installation process.
  • AIA Object Library (EBOs, EBMs, WSDLs) are not installed automatically as part of Oracle SOA 12c Core Extensions. To make these available you will have to extract your 11g objects and package them in a JDeveloper project so they can be deployed into MDS. I personally don’t think this is an issue at all as this is the same way I used to do it in 11g anyway!
  • OER 12c (12.1.3) will be released soon. This new version will support harvesting of SOA Suite 12c assets. I will provide links on this topic later on.
Having said that, it is important that if you are starting a new 11g project (and you are evaluating using AIA or OER) or if you are already planning an 11g to 12c migration, you consider these factors and plan accordingly. In fact, in a recent 11g project I was faced with the dilemma on whether or not to make use of AIA and OER. I will not go into details on the decision made, however what I will share if the following table which helped me and also the customer make an educated decision:
SOA 12c AIA/OER Backward Compatibility Table
Feature
Requires AIA FP Installation?
SOA 12c AIA/OER Backward Compatibility
Service Constructor JDeveloper Plugin
Yes and No. Yes, It can be used independently of AIA as it is a JDeveloper Plug-in however it requires AIA FP to be installed on server as otherwise composites deployed which were developed with constructor will not run on server.
This feature is not available in 12c. Not even as part of 12c Core Extensions
Code Compliance Inspector (CCI)
No. It can be used independently of AIA as it is a Jdeveloper Plug-ing
Part of OER bundle. OER 12c (12.1.3) will be released soon and will support 12c SOA 12 harvesting
Lifecycle Workbench
Yes. It requires AIA FP
This feature is not available in 12c. Not even as part of 12c Core Extensions
Composite Application Validation System (CAVS)
Yes. It requires AIA FP
CAVS is available in 12c as part as SOA Core extensions
Setup Pages
Yes. It requires AIA FP
Exception handling features of AIA FP are supported on 12c as part of 12c Core Extensions
AIA Message Resubmission Utility
Yes. It requires AIA FP
Exception handling features of AIA FP will be supported on 12c as part of 12c Core Extensions
AIA Solution Pack
No. Comes as part of OER installation
Part of OER bundle. OER 12c (12.1.3) will be released soon and will support 12c SOA 12 harvesting
AIA Harvester
Yes. It requires AIA FP
Part of OER bundle. OER 12c (12.1.3) will be released soon and will support 12c SOA 12 harvesting
AIA Deployment Plan Generator
Yes. It requires AIA FP
This feature will is not available in 12c. Not even as part of 12c Core Extensions
AIA Installation Driver
Yes. It requires AIA FP
This feature is not available in 12c. Not even as part of 12c Core Extensions
AIA WSM Policies
Yes. It requires AIA FP
Yes, this will be available in 12c. Anyhow creation of Policy Sets in WSM which will be supported in 12c are not complex to create
AIA Composites
Yes. It requires AIA FP
Yes, exception handling related composites are available in 12c as part of SOA Core Extensions in 12c
AIA Prebuilt Integrations
Yes. It requires AIA FP
It is not my understanding that AIA pre-built integrations (i.e. PIPs) will be created for 12c. However some backward compatibility will be provided in 12c with SOA Core Extensions
AIA Error Handling Framework
Yes. It requires AIA FP
Exception handling features of AIA FP are supported on 12c as part of 12c Core Extensions
AIA Logging Framework
Yes. It requires AIA FP
Logging features of AIA FP are supported on 12c as part of 12c Core Extensions
AIA Metadata
No. They can be extracted from an environment that has AIA and then deployed as JDEV Metadata Projects
AIA Object Libraries (including EBOs) are not installed in 12c along with the Core Extensions. Only way to deploy these libraries to 12c will be packing them in a JDeveloper project and  deploying it to 12c MDS

SOA / API Development Tools Tips

$
0
0

Having been delivering SOA projects for over a decade, I’ve come across many tools some of which I hate and avoid using them (unless a client demands so)  and others that have made my life easier when delivering projects.

The below table is a recollection of tools I have used or come across which  I find useful and recommend SOA/API practitioners to use or at least evaluate. Enjoy :)

SDLCTool NameDescription + Links
Project/Scrum Management and CollaborationJiraJira when used for scrum management is In my opinion is the the best tool I've used for managing scrums specially in an offshore / onshore distributed environment. It also has capabilities to manage GIT repositories which makes this an ideal tool for a complete cloud/based agile project with users all over the world.

https://www.atlassian.com/software/jira
 AgiloI used this tool some time back successfully in a large onsite SOA project and it worked very well for us. Product has come along way since then and It's more feature rich than it used to be. It has a 30 day trial.

http://agilosoftware.com/
 Coop Appvery clean UI supporting features such as share status updates, questions, links, and others.

http://coopapp.com/
 PBworksSuite of tools including in-app instant messaging, live notifications of changes to work spaces, live editing of documents, voice collaboration, wiki, and others. Can be used for full collaboration including project management.

http://www.pbworks.com/
Configuration ManagementGitHubI have been using this tool recently but found it amazing specially because of the GitHub client which is not intrusive to filesystem (like Tortoise and that create issues some times in the local file system) and very easy to use. It's social collaborative capabilities are awesome but also supports private projects however this latter feature it's not free. Also there are tutorials online.

https://github.com/

try.github.com
 SubversionThis is the version control system I've used the most and still using the most in client side. Compare to any other traditional version control system (i.e. CVS, Clear Case, MSTFS, RTC) I think this outperforms them all, not only because of it’s simplicity, but because of the wide availability of subversion clients available and community support. My preferred client is Tortoise. Also there are clients available for JDeveloper. There is different installation options. The apache option can take longer as you have to install Apache HTTP s ever separately, for this reason I used collabnet which is very easy to use but has some licensing implications. There is also bridges available to link subversion with other repositories such as GitHub, or to use SVN clients against repositories other than subversion.

Servers:
www.collab.net

https://subversion.apache.org/

Clients:
http://tortoisesvn.net/downloads.html

Jdeveloper Subversion Extension (added from Jdev directly)

Bridges:
https://svnbridge.codeplex.com/

http://www.bioconductor.org/developers/how-to/git-svn/
 JenkinsThe best continuous integration tool I have used so far (even when compared to proprietary tools like IBM BuildForge). There are so many plugins available like for example reporting, performance testing, Maven integration, which makes this a true gem when implementing large integration projects.

http://jenkins-ci.org/

https://wiki.jenkins-ci.org/display/JENKINS/Plugins
 DockersIn simple words, Dockers it's a new paradigm for creating portable applications that are available in the cloud and can be checked out and run in multiple platforms that have Dockers installed. Yes, it's that simple. Dockerized apps can be checked out from a central server, can be modified, re-packed, checked into the cloud again and so on... Reason I say it's a new paradigm is because Dockerized apps are basically running in fully segregated compute capacity of the underlying OS, so basically it's sort of like a virtualised environment, but it's not. It's just a container ! there is a great tutorial in the following link:

https://www.docker.com/

https://www.docker.com/tryit/
 PuppetPut simple, Puppet it's a framework to automate the installation and configuration of systems / applications in a variety of environments, i.e. from sandbox, to dev., SIT, UAT, NFR, Prep rod, to production. Puppet is very robust and it's very scalable. By creating Puppet manifests using a DSL based on groovy, you can define the installation steps of complex systems and complex topologies such as Oracle RACs and Oracle SOA Suite clusters. It comes in 2 flavours, an open source version which has several restrictions (i.e. no GUI), and a licensed version puppet enterprise) with is more feature rich. For puppet to work in a distributed environment, there is a Puppet central server which stores all the manifests (in a YAML store) and puppet agents which are deployed into the targets where software will be installed and configured. There is a new type of "masterless" configuration being popular now days which removes dependency on the master server.

http://puppetlabs.com/

http://puppetlabs.com/puppet/puppet-open-source
 ChefConceptually it's a similar solution to Puppet. However instead of DSL based on groovy, it's DSL it's Ruby. Also instead of "manifests" you create "recipes". Some people from a sysadmin background don't like this and also the fact that it uses JSON data structures, and a Postgress data base. However if you come from a web development background (like me) this should not be an issue at all! in fact the opposite. Chef also comes in different flavours Chef Essentials (Free), Chef Subcription, and Site. Also there is a hosted options. To be frank, I found the flavours a bit complicated to undersand.... Chef also relies on a client/server architecture, where a server contains all recipes and the clients are deployed to the nodes where installations/configurations will take place. Note that although there is a free version, Chef it's in fact not open source....
 AnsibleThe work of Michael DeHaan (creator of Cobbler a popular linux install server), it's yet another CM tool but unlike Puppet and Chef it does not follows a client/server architecture meaning that is agentless. It follows a push model and it's transport it's SSH. Configuration files are store in YAML "playbooks" (equivalent to recipes or manifests). The playbooks can actually reside on any node and then as said configurations are pushed using SSH. This makes Ansible of all options the simplest one (in theory as in practice I haven't tried it yet but I willl as I find it very attractive).
API Management & GovernanceAPI Catalog 12cNew product released at OOW! a light-weight version of OER, fantastic tool to create a catalogue of your available services and APIs without the hazard of implementing a full OER solution. Basically all you need to do is set install API Catalog (with same binaries as OER 12c) and harvest your OSB and SOA Domains or WSDL/WADL URL’s directly. It has a very clean and nice new UI so you don’t have to worry about all the complexity of OER.

To install download OER 12c and select API Catalog install option.
 API Manager 12cNew product released at OOW! not out yet, but will be soon!. Basically built on top of OSB, it will allow you to define from OSB console or JDeveloper which OSB Proxy services are “managed” and then they will become available in API Manager. API Manager is basically an application which will provide a facility for API designers as well as API consumers to access and use/managed your published APIs. At present this product is not meant for DMZs but rather for internally published APIs. For DMZs, API Catalog is a better options.

Not available for install yet.
 Oracle Enterprise Repository (OER) 12cWill not say much about this as my blog is full of information about this tool plus I've written a book about too. One thing though, many companies are in a phase now to try and modernise and transform their services landscape, this tool can help gained proper visibility over existent assets therefore create a proper inventory of available assets which can then be used to re-design / transform the solution into a more mature state and also avoid ending up in more duplication as transformed services will be visible/searchable in the repository. There is a coming 12c release of the products which will provide new flavours of the product, one of which is light-weight and focused for API management.
DesignMOGUPSIf you also have a requirement to build a UI mockup for your services, this is a fantastic online tool to do all of this. I really found it easy to use and feature rich. It's not free but monthly fee are reasonable.
 INK ScapeMy preferred tool to create killer vector-based diagrams when doing design. The best of all, it's open source.
 Tools for generating UML like designs:Although InkScape it's great for graphics, when it comes to generating UML like diagrams, it really falls a bit short specially when it comes to creating a central-collaborative repository. For this purpose the tools I usually end up using are:
1) Sparx Enterprise Architect: The best tool out there in my view but not cheap.

www.sparxsystems.com/products/ea/

2) MS Visio (the obvious option): Good tool but lacks strong collaborative features like EA

www.microsoftstore.com/Microsoft_Visio

3) JDeveloper for Sequence and Class diagrams (although it's not really the best tool for this): Option if there is no EA or visio license

oss.oracle.com/jdeveloper.html
BuildOracle JDeveloperAs an Oracle SOA expert, this is the IDE of choice for building SOA composites and OSB services and APIs. 11g version is very good however the 12c version truly is a gem and so much capabilities are now available in the tool (such as building OSB's proxy/business services and OEP streams).

https://oss.oracle.com/jdeveloper.html
 XML SpyI still believe this is the best XSD / XML editor there is. Specially when building complex canonical models with tons of inter-dependent schemas, this tool truly steps up. Unfortunately it's not cheap! But in large projects with tons of XML editing, purchasing it can be justified based on productivity gains

www.altova.com/xmlspy
 Online Json EditorsThere are some excellent online JSON editors available. Here some links of the ones I often use:

http://www.jsonschema.net/

http://www.jsoneditoronline.org/

http://json.parser.online.fr/
 Notepad ++Many times we want to edit files quickly and that aren't necessarily related to a JDEV app or project (i.e. config files, shell scripts, etc). For this scenarios instead of using notepad, I always used Notepad ++. I think is the best editor out there for windows plus it has some very useful plugins

http://www.sunjw.us/jstoolnpp/
 JSToolNpp for Notepad ++Excellent Notepad ++ JSON viewer plugin

http://www.sunjw.us/jstoolnpp/
 D3Not really a tool but rather a JavaScript lib. The most powerful graphic generation library I've seen so far. Combining the graphic capabilities of this library with your solutions will deliver a greater impact to the consumer of the solution. At the end of the day "if you can't draw it you can't understand it" and with this tool, you can generate hundreds of different views to exploit your data.

http://d3js.org/

Free eBook available in following link: http://chimera.labs.oreilly.com/books/1230000000345/index.html
TestingGen RocketGenerating robust and meaningful test data dramatically improves the quality of the code as test cases become more relevant and scenarios more realistic. However this is often an undermine task and it's usually developers that end up creating test data which not always covers all required scenarios or is meaningful enough. A colleague of mine shared this tool and although it's not open source, it does provide some very good features to create projects to generate data for defined data objects and automate the generation of test data at a massive scale. Data can be generated in several formats such as XML, csv, etc.

http://www.genrocket.com/
 GenerateDataA very simple, web based, open source tool for generating test data. It all can be done online and data can be generated in different formats like csv, xml, JSON, SQL, LDIF, etc.

http://www.generatedata.com/
 Oracle SOA Suite Test SuiteGreat feature of SOA Suite available in Jdeveloper to create and automate unit test scenarios to test composite wires and components. It can also be integrated with Jenkins jobs for example for continuous integration / regression testing

http://docs.oracle.com/cd/E21764_01/integration.1111/e10224/bp_testsuite.htm
 SOAPUIThis is now a well know tool in the industry for testing web services. However incredibly as it sounds not every knows that the tools can also be used to generate service stubs and to do performance and penetration tests although these last too require purchase of a license, but still an awesome tool.

http://www.soapui.org/
 Code Compliance Inspector (CCI)Comes in two flavours. As JDEV plugin and also with OER as a utility. I had issues with the former but the latter worked quite well for us and we also managed to incorporate CCI code check as part of our build/deployment/continuous integration process. So every time someone checks code into main branch, we actually automatically checkout the code, do a CCI code compliance test and then build and deploy. If code is not compliant we send a error notification to a distribution list.

http://docs.oracle.com/cd/E28280_01/doc.1111/e15754/codecomplianceinsp.htm

http://docs.oracle.com/cd/E28280_01/doc.1111/e17366/chapter20.htm
 Zed Attack Proxy (ZAP)Created by OWASP community, this is a fantastic open source tool to test security vulnerabilities in web applications and can also be used for testing REST and Web services

https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
 Apache JMeterFor me one of the best open source performance testing tools available, allows for all sort of performance tests to be created either for simple HTTP requests or for web service or REST service invocations. It supports distributed and multi-threading testing.

http://jmeter.apache.org/
 WSDiggerIt's an open source tool for testing security on web services. Haven't use this tool vastly but I used it against standard SOAP based services and it worked well. I however don't see that it has been updated recently which is a shame really!

http://sourceforge.net/projects/foundstone/files/WSDigger/
Production SupportXymonReally awesome, open source and lightweight tool to monitoring web services, networks, etc by using different extensions available. For web services, XYMON can be used to monitor health of HTTP endpoints for example and to ensure that services are up and running. When issues are identified, XYMON can be confirmed to send notification alerts via SMS and email amongst others.
 Oracle Business Transaction Management 12cBTM for transaction monitoring

http://www.oracle.com/technetwork/oem/btm-496775.html
 Oracle BAM 11g/12cBAM for activity monitoring and user/business facing dashboard:

http://www.oracle.com/technetwork/middleware/bam/overview/index.html
 Oracle Enterprise Manager 12cOEM for operational monitoring (App performance management, instance status, health checks, etc.)

www.oracle.com/EM

Oracle API Catalog 12c Full Overview

$
0
0
Oracle has recently released Oracle Enterprise Repository (OER) 12c and Oracle API Catalog (OAC) 12c.I am particularly exited on the latter as it aims to simplify management of APIs and promises to be able to create catalog of your services and APIs rapidly. Furthermore, although OER 12c maintains the same richness as in OER 11g, this product is targeted to advance users that are in need to address more complex governance requirements whereas OAC it’s a light-weight version of OER however tailored to address specific use cases of API management such as cataloguing, discovering and rating APIs.
This blog is about my first impression when installing, configuring and using Oracle API Catalog. In the blog I provide all steps I followed to achieve these tasks and at the end I provide a summary of my experience and feedback of the product.

Installation Pre-requisites

  • Download Weblogic Server 12.1.3 and OER 12.1.3 software binaries from following link (note that OAC uses same OER installer)
http://www.oracle.com/technetwork/middleware/repository/downloads/index.html
  • You will need an Oracle Database installed (you may also download database from previous link). If you already have an environment with an Oracle Database available you can check supported versions from following link
http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html
  • Ensure you have installed JDK 7.0 Update 55 or later. You can download it from the following link:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • Oracle API Catalog Home Page and Installation Guide:
https://docs.oracle.com/middleware/1213/oac/index.html
https://docs.oracle.com/middleware/1213/oac/install-cat/toc.htm

Installation

Firstly install Oracle Database and Weblogic Server as per instructions.
Then continue with installation of OAC 12c as per following instructions: https://docs.oracle.com/middleware/1213/oac/install-cat/intro.htm#CATIG146
Following key screenshots taken during installation of Weblogic Server and OAC and also some tips:
Installing Weblogic
- Launching Weblogic 12.1.3 installer
image
- Click Next and choose your FMW home (I’ve used /u01/fmw2 as I have SOA Suite 12c under /u01/fmw)
image
- Click Next and select “Fusion Middleware Infrastructure”
- Click Next and un-select option to get updates if this is a local or demo environment, then click Next and click Yes
- Click Install and then Finish if all goes well, otherwise check the logs for issues and retry
image
Installing OER binaries (OAC uses same installation binaries)
- Launch OER installer
image
- Click Next and select previously created FMW home (in my case /u01/fmw2) and click Next
image
- Click Next, Next again and then Install
- If all goes well click Finish, otherwise check the logs for issues and retry
Install Patches for RCU and Weblogic
- Instructions in following link https://docs.oracle.com/middleware/1213/oac/install-cat/install_gui.htm#CATIG394  , below summary:
- Go to Oracle Support and download patch 18791727 (RCU COMPONENT FOR OER OAC)
image 
image
- Run Opatch
image
- Check that it succeeds and if so apply Opatch for Weblogic
image
- Go to Oracle Support and download patch 18718889 (WEB SERVICES RUNNING ON WLS FAIL WHILE MAINTAINING SESSION)
image
image
- Run Opatch
image
- Check that it succeeds
image
- Run ./opatch lsinventory to ensure all patches were applied successfully
image
Run RCU
- Run <FMW_HOME>/oracle_common/bin/rcu.sh
image
- Click Next, then select “Create Repository” and “System Load and Product Load” and click Next
image
- Enter DB details and click Next and then Ok. Then select which schemas you wish to create. In my example I created schemas for both OER and OAC (ensure you use the right prefex. In my case I used “DEV” but you may used any other depending on what environment you are installing). Then click Next and Ok again
image 
- Enter password for the schemas and click Next, check that all schemas are correct and click Next and then Ok twice
image
- Click Create
image
- Click Close if all goes successfully, otherwise check logs and try again
image
Extend Domain
- <FMW_HOME>/oracle_common/bin/config.sh
image
- Select “Create a new domain” and ensure you provide a meaningful name to the domain, i.e. oac_domain (this will not cause installation to fail but in future it might create confusion around what the domain contains and purpose of it). Then click Next
image
- Select the template for “Oracle API Catalog" and click Next. Don’t try select OER and OAC template simultaneously as it will won’t allow you!! I tried this too!
image
- Enter the admin credentials for Weblogic server and click Next
- Select Production if you want more robust security or Development if you wish credentials to be loaded from boot.properties. Use default JDK (you may change this setting in a real production environment)
image
- Enter the DB details and credentials for the OAC schema and click Next
image
- Test connection and if successful click Next
- Select “Administration Server” and “Managed Servers, Clusters and Coherance” and click Next. Specially ensure you don’t miss Admin Server!!
image
- Select “All Local Addresses” so admin server listens to all IPs available in the server. Also ensure you change admin server port if you have other environments installed in your machine. Then click Next
image
- Do the same for oac_server1. Select “All Local Addresses” and ensure port it’s not already used then click Net
image
- Click Next twice (as am doing a demo environment I have no need set up a cluster and pinned servers to a machine)
- Click Create
image
- If Domain creation is successful click Finish
image
- Start Admin Server and then oer_server1
image
image
- Check the following link for best practices on stopping and starting Weblogic admin and manage servers: https://docs.oracle.com/middleware/1213/wls/START/overview.htm#START112
- Check post-installation steps for running OER diagnostic tool: https://docs.oracle.com/middleware/1213/oac/install-cat/post.htm#CATIG197

 

UI Look & Feel

Ok so finally the fun start!! we’ve done the installation and everything seemed to have gone smooth. Now let’s have a look at the UI:
- Once servers have  started open following url: http://localhost:8111/oac
image
- Enter default credentials (admin / weblogic1) then it will ask you to change credentials
- Home page looks very clean and nice. I can see that there aren’t as many options as OER and there is no “Asset Home Page” so I won’t be able to create/add assets from here. There isn’t an option either to create/modify Asset Types. OAC only support one asset type which is APIs.
image
- There are 2 other main pages: MyAPis and Admin
image
image
- The Admin page looks very similar to OER and the security model around users it’s similar to OER however there is no concept of “Projects” as there was in OER 11g.  I think this is a good thing as Projects could confuse non-experts users. If you are not familiar with this model, below is how OER 11g user security model looked like. In red entities that don’t apply for OAC so it should give a good idea of how users and departments can be configured
image

Harvesting API Assets

- Harverster is available under <FMW_HOME>/oer/tools. Unlike OER 11g, no need to unzip ! just configure HarvesterSettings.xml and start using it!
image
- Let’s configure HarvesterSettings.xml to connect to OER
image
image
- Run ./encrypt.sh as following to encrypt password in HarvesterSettings.xml
image
- Now let’s harvest a REST API by running “./harvest.sh –file “<REST WSDL URL>”
image
Note: Harvester has several features available including harvesting OSB services and SOA Composite applications. For more detail info read the following page:
https://docs.oracle.com/middleware/1213/oac/administer-cat/harvest_oac.htm#CATCG433

Discovering APIs

Now let’s go back to the OAC home page and let’s see if our API is registered.
- By default APIs harvested are not registered as “Published hence they don’t appeared in the home page. So to find the API select “All APIs” from dropdown menu as per below and click on search icon
image
- Now the harvested API (WADL file) appears in the search results. Click on the API to see more details
image
- On this page you can see all metadata associated with the API. Let’s edit the API by clicking the pencil icon
image
- Now from here we can change the status of API. From Active Status dropdown select “Published” and click save. Now API should show up in home page
image
- Yep, now is there.
image
- If you want to rate the API and add comments, you need to add the API to MyAPIs. To do this click again on API and then click on Folder icon
image
- Then go to the “My APIs” page, and from there click on the Comments icon. A popup will appear, from there rate your API and add your comments
image
- Go back to home page and you will see your 5 star API :)
image

Summary

  • Installation is comprehensive and I like the fact that RCU is part of Weblogic binaries. Although you had to apply 2 patches before you can run RCU and extend domain it’s pretty straight forward and well documented. In total it took me between 1hr and 1 1/2 hr to do core installation (bearing in mind that I used an environment with a DB already installed and I had already downloaded all binaries and patches needed)
  • Tools (in <FMW_HOME>/oer/tools) are already unzipped which makes it a bit easier to configure harvester
  • Encrypting password can be done directly against password in HarvesterSettings.xml which is very straight forward to do
  • Harvesters is the same as OER. So executing harvester is very straight forward and easy. Best of all a lot of the information available in my SOA Governance book for 11g will still be useful for OER 12c and OAC
  • Harvester supports REST APIs published with WADL files
  • OAC UI’s are very lean, user friendly and intuitive. There isn’t as many pages as OER and it is not possible to add assets or create/modify asset types from the console. However I think this is a good thing to keep the complexity low and focused at only cataloging APIs asset types
  • The “MyAPIs” screen I found very cool. Also the ability to rate the APIs and submit comments / reviews I think will be extremely useful is OAC is used for example as an external catalog for “customers of the APIs” to rate and comment on APIs
  • Admin page seems similar to OER however simplified as OAC has no concept of “Projects” (which I think is a very good thing). Also only basic access settings are available unlike OER where you can configure CAS (Custom Access Settings). Also other features such as Compliance Templates are also not available. Again this is not a bad thing as it adds to the point of keeping it simple
  • My recommendation to implementers and companies looking to adopt governance but that don’t yet have mature processes or tools, to start off by using OAC and as their SOA adoption and governance mature then incrementally start planning for a more complex governance implementation using OER 12c
  • All in all, OAC is the killer OER app. Installation process it’s smooth (even patching process is simple), UI is very clean, functionality is “fit for purpose” and harvester is as feature rich as one available in OER.

A Word About Microservice Architectures and SOA

$
0
0

In this article I will talk about my first conclusions and my point of view regarding Microservice Architectures. As there is still quite a lot of confusion and debate out there on this topic, I will try to describe with my own words what Microservice Architecture is, how does it differ from typical Service Oriented Architectures (SOA) and what design principles and practices governs it.
What is a Microservice Architecture?
In the article http://martinfowler.com/articles/microservices.html written by Fowler and Lewis, Microservice Architecture is described as following::

Microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies

The article overall it’s a fantastic piece of work (really suggest you read it). The way Microservice Architectures it’s defined opens up a few pandora boxes (in a good way I think) which I will talk about subsequently.
First of all, if you are familiar with SOA and it’s guiding principles this will seem very familiar (read for example: http://en.wikipedia.org/wiki/Service-oriented_architecture or http://www.soa-manifesto.org/). Yet, if you noticed the highlighted texts, it’s not quite the same as what we are used to in traditional SOA. The truth is, wether we accept it or not, SOA architectures evolved around the adoption of certain design patterns (such as Enterprise Service Bus (ESB), canonical schemas, centralised contracts, -see http://www.soapatterns.org/ for more) and the use of SOA specific infrastructures to build and deploy services and APIs became the approach of choice (note that the service vs API topic it’s not discussed in this post. For my view on this read http://www.soa4u.co.uk/2013/09/restful-is-also-soa.html).
From my perspective, I would define Microservice Architecture’s as both 1) a design pattern and 2) a discipline for delivering services and APIs. To elaborate further based on my conclusions I can highlight the following guiding principles:

  • Delivering business focused and lightweight services/APIs that are truly design, built, deployed and executed independently of each other (meaning that in terms of infrastructure dependencies, they share very little)
  • Strong focus on people collaboration and communication as the main mechanism in the adoption of best practices and standards rather than common set of strict guidelines and standards that constraint the way services are define, built, deployed and maintained
  • DevOps (config management, deployment automation, CI, Continuous Delivery) as a fundamental building block rather than a value add
  • Scalability should be easy as services are very lightweight and stateless (The same service can run in many servers and DevOps makes the deployment process automatic and easy)
  • Doesn’t encourages the use of monoliths to deploy services (a monolith is for example an application server or an ESB). Services should run almost as demons
One can argue that SOA architectures can also satisfy the listed requirements as SOA it’s really an architecture paradigm that can be realised in different ways. I personally think this myself and I would regard Microservice Architecture as a SOA design pattern, however as per my previous point, comparing it with traditional SOA architecture’s there is a difference.

Microservices vs SOA
To make my point more clearer, I created the following diagram to compare the system layers in a traditional SOA infrastructure to a Microservice one:


Microservices Vs SOA System Layers
As it’s visible in the diagram, there are many similarities between the two, however there are three key differences, two of which are very obvious but one that is not  (there are more that you can deduce from the digram and all the links I’ve provided):

  • First of all, traditional SOA implementations have been built around the use of monoliths ( or as Microservices calls it: Monolithic Architecture pattern -read http://microservices.io/patterns/monolithic.html)
  • In a Microservice Architecture on the other hand, services and APIs are built and deployed without almost any dependency on an underlying application server or application. This means that services run as processes of the OS and share very little in terms of underpinning application infrastructure. This is because in Microservices (as per the highlighted text in Fowler’s / Lewis's definition) services and APIs should ideally run independent from each other. Another good article for this is http://microservices.io/patterns/microservices.html
  • The third one -not obvious, is around composition of services. Traditional SOA promotes the use of orchestration (i.e. BPEL) whereas Microservices encourages the use of choreography. The fundamental difference here is that in Orchestration you need an “orchestra director” that defines and manages the interaction logic between all services (basically the BPEL code that executes or even in SOA composites, the SCA file like composites.xml that dictates at runtime how components interact). Choreography is different. Is a design time mechanism to model service interactions and behaviours but then once a service is built and deployed they should “know what to do”. Think of it as a protocol. A good analogy: "Dancers dance following a global scenario without a single point of control" (http://en.wikipedia.org/wiki/Service_choreography)

The following forum thread also provides a good point of view on the commonalities and differences of the two http://stackoverflow.com/questions/25501098/difference-between-microservices-architecture-and-soa
Now that I’ve described some of the key differences, I want to make it more obvious by showing a piece of code for a service built following the Microservice Architecture pattern. The snipped is based on Node.JS (https://nodejs.org/)  Express (a lightweight app for Node -http://expressjs.com/). Do note that Microservices can b built in any technology (i.e. Java) so long that the guiding principles are adhered to. 

var express =require('express');
 
var app = express();
 
app.get('/wines', function(req, res) {
   res.send([{name:'wine1'}, {name:'wine2'}]);
});
app.get('/wines/:id', function(req, res) {
   res.send({id:req.params.id, name:"The Name", description:"description"});
});
 
app.listen(3000);
console.log('Listening on port 3000...');

(full example on http://coenraets.org/blog/2012/10/creating-a-rest-api-using-node-js-express-and-mongodb/)
As it’s visible, this simple REST API is fully self-contained. It not only defines the resources that the API will provide and the HTTP verbs to use, but also defines the port the API will listen to. This basically means that this API will be self-contained and running in it’s own process. Fascinating isn’t it?
In regards to people, Microservice Architectures encourages the creation of multi-disiplinary teams that are organised around the capabilities that specific micro services will support, rather than creating different teams based upon for example the different technologies and layers involved in the creation of a single microservice. As per Conway’s law, the systems you build will be a reflection the organisation and communications structures you followed ( I’ve about this in http://www.soa4u.co.uk/2013/11/9-tips-for-organizational-maturity-in.html). In addition it is encouraged to have strong communication and collaboration mechanisms as this becomes the preferred way to share best practices and standard documents written ages go and available in somewhere in a forgotten content management system.
Furthermore DevOps/Contionus Delivery in Microservices really is a must-do rather than a value add. At the end of the day, DevOps main objective is to bridge the gap between development and operations team therefore delivering high degree of agility into the main software development lifecycle (SDLC) stages. For automation aspects of DevOps, below a nice diagram that can serve as inspiration on what tools can be used for each phase.

DevOps Tools
Microservice Architecture is NOT a silver bullet! - ESBs are still needed
I personally think ESB’s still have a role to play to bridge application integration gaps in large enterprises as “choreography” alone all become streamy challenging in such large landscapes. The need for a robust tool to handle message routing, complex transformation, enrichment, throttling, and virtualisation tasks is still very valid and needed. The truth is that large organisations have many systems, many of which are commercial of the shelf (COTS), others are legacy, and others bespoke. Solving this integration challenge its not an easy tasks and a combination of technologies and architectural approaches is usually needed.

ESB based SOA
I can see this same issue occurring with Microservices as inevitably the number of microservices will grow exponentially and without a doubt governance will become challenging. This is the reason why SOA Governance and API management tools exist. it is one choice to define the right governance model (strict or lose). Also common problems such as visibility, lack or reusability, dependency management, amongst other will still be there in micro services. Therefore leveraging SOA governance and API management tools such as service and API catalogs and enterprise repositories will add a lot of value in they will help solve some of the common governance challenges.
I personally think that Microservice Architectures add most value when use for the right use case. For example, to build systems and applications with a very well define system boundary. Not necessarily to address all of the integration needs in an organisation. In other words, I don’t think Microservice Architecture is a silver bullet. I see it as another very good pattern that can be used when it applies, but as everything if overuse, challenges will come for sure.


Coexistance of SOA and MIcroservices
Another excellent use case where Microservice Architectures can apply nicely is around Internet of Things (IoT) and Machine to Machine (M2M). This is because by default devices are constrained by default on it’s hardware capacity and although at the moment focused is mainly in sensors, there is a lot of value in also having devices expose functionality and data via lightweight APIs (using protocols like MQTT or AMQP). This will allow devices to either interact amongst them (and this can be modelled using choreography languages like WS-CDL for example) or take part in a broader IoT ecosystem where the device can take part in a broader business process.
Microservices for IoT
Conclusions
I definitely see a lot of benefits and value adds in Microservice Architectures. I like the fact that there is very clear boundary between services not only logically but also physically. I never liked the fact that if an ESB goes down all services running in it also get affected…For this reason I think that major SOA and ESB’s vendors will embrace the Microservice Architectures way and might end up extending existing tools somehow to support or partly support this paradigm  or creating additional tools into their suites to support the creation of micro services.
Microservices Bus
Finally I think that some of the forgotten specifications such as WS-CDL (http://www.w3.org/TR/ws-cdl-10/) will get traction again as they do have a role to play in the Microservices world, or at least that is what I would like to think.


Hope you enjoyed the article :)

Installing MAF 2.1.2 and MCS Lab Utility on Mac (OS X Yosemite 10.10.4)

$
0
0
During the OFM Summer Camp for Mobile Cloud Service (MCS) it was all going very smooth. In fact too good!! until I had to set up MAF 2.1.2 in JDevleoper and configure the utility provided in the lab (maf-mcs-utility-2.1.3.1.4). At this point nothing worked…The fact that I use Mac didn’t make things easier either as most people were on Windows and the lab sort of assumed the same….. So after at least 6 hours banging my head against the wall I finally found a solution.

Word of Caution
I initially tried to make this work in an existing Jdeveloper 12.1.3 soaquickstart installation. I tried to set up MAF 2.1.2 in this environment (following the docs steps) and it got to the point that I was getting all sort of weird errors (many related to MDS not loading and others around compilation). So at this point I decided to do a full clean install of everything (including Java).
Below the steps:

Preparation:
  1. Uninstall JDK 1.8 or JRE 1.8 (if you don’t have a JDK installed yet) by following these instructions
    1. JDK uninstalling steps: https://docs.oracle.com/javase/8/docs/technotes/guides/install/macjdk.html#A1096903
    2. JRE uninstalling steps: https://www.java.com/en/download/help/macuninstalljava.xml
  2. Download JDK 1.7 from: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
  3. Download JDK 1.8 (for later use) from: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  4. Download JDeveloper 12.1.3 from: http://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html
  5. Install Xcode from https://developer.apple.com/xcode/
    1. If Xcode is already installed make sure SDK is installed by clicking on Xcode Menu > Preferences > Download
    2. If no simulator is installed, click on the latest simulator to install it
Installation:
  1. Double click on jdk-7uxx-macosx-x64.dmg to install JDK 1.7
    1. Open a command prompt and check that it was properly installed by running java -version
  2. Open a command prompt and change directory to the folder where jdevsuite121300.jar was downloaded to.
    1. Then execute: java -jar jdevsuite121300.jar
    2. Follow steps as indicated. Make sure to take note of the Oracle inventory and Oracle home paths as you might need them later
    3. Also if you’re planning to run different installations of Jdeveloper, use a distinctive Oracle home (i.e. fmw1213-maf212)
  3. Open Jdeveloper and click on the menu Help > Check for Updates
  4. Tick on “Official Oracle Extensions and Updates” and click Next
  5. Tick on “Mobile Application Framework” then click Next
  6. Click on “I Agree” then click Next and finish
  7. Don’t restart JDevleper when prompt. Instead close it
  8. Now install JDK 1.8 by double clicking on jdk-8u51-macosx-x64.dmg
  9. Open Jdeveloper
  10. When prompted to enter JDK 1.8 enter the path which usually is "/Library/Java/JavaVirtualMachines/jdk1.8.051.jdk/Contents/Home" and click Ok
  11. Right click on ViewController from the projects window then select “Project Properties” then click on Libraries and Classpath. Make sure that the Java SE version is "MAF JDK 1.8 Compact 2 Profile”. If this is not the case chances are you will hit issues. You may try the following solution but there is no guarantee it will work https://community.oracle.com/thread/3669368
  12. Go to http://docs.oracle.com/cd/E6577401/tutorials/tutmcsbasic/tutmcsbasic2.html and click on “Downloads” to get file labfiles.zip.
  13. Unzip labfile.zip
  14. Open Jdeveloper (if not already opened)
  15. Using Jdeveloper open file <path where unzipped>/maf-mcs-utility-2.1.3.1.4/PublicSample/mafmcsUtilitySample.jws
  16. Click on the menu Jdeveloper > Preferences and then Mobile Application Framework > iOS Platform
    1. Click on the Browse icon and search for the folder "Automatically Add to iTunes” note that in my case it appeared as "/Users/luisweir/Music/iTunes/iTunes Media/Automatically Add to iTunes.localized” for some reason
  17. Click on menu Run Click on menu Build > Clean all
  18. Right click on ViewController and then click Run > iOS Simulator
  19. Hopefully the Simulator Window will open!! if it doesn’t, well, good luck finding a solution (and if you do, kindly add it to this blog for others to learn from it)
Lastly for instructions on how to set up the MAF Samsung emulator on Mac follow these instructions: http://docs.oracle.com/middleware/maf212/mobile/install/mafig_setup.htm#MAFIG164

Oracle API Management Implementation 12c Book Overview

$
0
0
Digital transformation is at the core of every business strategy regardless of what type of business an organisation is in. Companies that embark on a on a digital transformation journey are able to create innovative and disruptive solutions that are capable of delivering a much richer, unified and personalised user experience, at a lower cost. They are able to engage the customer in a seamless fashion through many channels such as mobile apps, responsive websites and social media. Organisations that adopt innovative digital business models gain considerable competitive advantage over those that don’t.

Why transform digital?

The fundamental driver for digital transformation is the ability to unlock key information assets and business functionality, which is often hidden inside an organisation’s enterprise systems and in SOA based web services which are only internally accessible. To materialise these assets, organisations need to build web based Application Programming Interfaces (APIs) that not only provide standard, lightweight web access to these assets but also do so in a secured and controlled fashion. The lightweight nature and ease of use of these web APIs, ensure that they soon become the main mechanism for accessing information and functionality that is needed to build mobile applications, responsive websites and other cloud based solutions.

Why API Management

API management is the discipline that governs the software development lifecycle of APIs. It defines the tools and processes needed to build, publish and operate APIs including the management of the community of developers around it.

API Management

Oracle API Management 12c Implementation is a complete and comprehensive guide to implementing API management in an enterprise. The book explains in great details how API management relates to other disciplines such as SOA governance and DevOps. It explains how and where SOA governance and API management converge giving rise to Application Services Governance (ASG). Very importantly, it uses real life case studies and many examples to show how to successfully define and implement a single and robust API management strategy with the Oracle API management solution.

Application Services Governance

The book starts by describing all of the fundamental concepts around API management and related disciplines such as SOA Governance and DevOps in order to dispel the confusion surrounding these topics.

All of these concepts are then put into practice by the elaboration of a realistic case study of an organisation, which had previously succeeded in the implementation of a SOA governance solution, and now needs to extend this with API management. During the elaboration of the case study it is explained:
  • The business requirements that lead to the identification of API management as a potential solution
  • All of the steps taken to define a API management strategy
  • Definition and execution of an API readiness assessment and gap analysis: in terms of people, tools and technology
API Management Strategy

  • Product evaluation and selection explaining why Oracle is the answer
APIM ProductSelection
  • API management implementation roadmap
API Management Implementation
The book goes on to show the steps required to implement the following API Management Reference Architecture using Oracle API Management solution (Oracle API Catalog, Oracle API Manager and Oracle API Gateway) to solve the specific business needs described in the use cases.

API Management Reference Architecture

In summary what you will learn from this book:
  • API Management, its concepts, goals and objectives
  • The differences and similarities between API Management and SOA Governance; where and how these two disciplines converge into Application Services Governance (ASG)
  • Application Service Governance (ASG) and how to define an ASG governance framework 
  • Elaboration of an API management strategy including: identification of business drivers, API management readiness assessment, gap analysis, creation of a digital reference architecture and elaboration of an implementation roadmap 
  • Definition and execution of an API readiness assessment and gap analysis: in terms of people, tools and technology
  • Product selection criteria and evaluation - Why Oracle API Management?
  • Implementation of Oracle API Catalog (OAC) including topics such as OAC bootstrapping and harvesting using the shell and ANT harvester scripts and also from JDeveloper, OAC console, user creation and management, API metadata, API discovery and also how to extend the functionality of OAC using the REX API
  • Understand how to manage a set of APIs. Explain the general challenges of API Management 
  • Implementation of Oracle API Manager (OAPIM) including creation, publishing, management and deprecation of APIs, API runtime monitoring, API key generation, API subscriptions and API community management with the OAPIM portal
  • Understand the challenges for organizations looking to expose APIs to the external world. Identify common scenarios in this regard and how to solve them
  • Implementation of Oracle API Gateway (OAG) including creation of policies with different filters, OAuth authentication, LDAP configuration, REST/SOAP conversations and API deployment and testing
  • Definition of an Oracle API management deployment topology 
  • Installation and configuration of Oracle API Catalog (OAC), Oracle API Manager (OAPIM) and Oracle API Gateway (OAG)
The target audience for the book is Enterprise Architects, Solution Architects, Technical Architects and SOA and API consultants who want to successfully implement API Management using the Oracle API Management Solution products.

The book is now available for pre-order from the Packt website:
https://www.packtpub.com/application-development/oracle-api-management-12c-implementation

Converting ADLs to implement end to end JSON in SOA Suite 12.2.1 -PART I

$
0
0
There is no doubt that web [Rest] APIs have become extremely popular and its usage has gone well beyond just building APIs in support of mobile apps. We can see the adoption of resource-oriented architectures (ROA) by probably all SaaS vendors who provide out-of-the-box APIs as the means to connect and interact with their cloud applications. Take for example the Oracle Cloud. To discover and consume publicly available Oracle SaaS APIs, all one need to do is browse the Oracle API Catalog Cloud Service (which is publicly accessible) and just select the Swagger definition for any given API.


But (as you probably already know) the adoption of web APIs hasn't stopped there.  With the increased popularity of Microservice Architectures , initiatives such as Open Legacy ,  and node.js based frameworks like loopback and sails (to name a few), API-enabling system of records is becoming a lot easier.

This is putting a lot of pressure in software vendors to quickly modernise their integration suites to natively support the technology-stacks and patterns prevalent in these type of architectures. For example, if an organisations mobile application needs to interact with a system of record (on premise or the cloud) that already exposes a web API, the integration stack should be capable of supporting JSON over HTTP end-to-end without having to convert to XML back and forth. Not only is this impractical but introduces more processing burden to the core stack...

Luckily for many Oracle's customers and Oracle Fusion Middleware / Oracle PaaS practitioners like myself, with the latest release of Oracle SOA Suite (12.2.1) , one of the many new features introduced is the support for handing JSON end-to-end.  I don't want to understate the importance of this as with such feature it is possible to use BPEL for example to orchestrate several APIs (all in native JSON and also in-memory with the new SOA in-memory feature) and therefore deliver coarse grained business APIs that actually perform.

For me this represents an important milestone for Oracle SOA Suite as it shows the departure from traditional SOA tech-stack and into SOA 2.0 (as I like to call it) as the suite is now better suited to support the adoption of ROA, microservices, IoT, and so on. Having worked with SOA Suite since 10.1.3.1 this is very exiting.

The catch

Unlike traditional SOAP services that make use of web service description language (WSDL) as the main mechanism to define a service interface (yes one can argue that there are different types like doc-literal, rpc-encoded and versions like 1.1, 2.0, broadly speaking they are similar and there is vast support for all of them), web APIs don't enjoy this mono-linguistic nature, in fact quite the opposite.

There is at least 8 different API description languages (ADL's) that am aware of. Some more popular than others but still in general all with substantial communities and vendor support:


Note: Suggest you go through this presentation for a good overview of the main ADL's

Oracle on the other hand didn't opt for endorsing or fully adopting any particular ADL. Instead it seems that conway's law came into action and different products currently support different ADLs.


Although I am sure that this inconsistency will go away in future releases, for us practitioners this sort of represents an immediate challenge. Even though all of the aforementioned do support REST/JSON in its purest sense, not being able to interpret an ADL automatically using an adapter basically means that one has to manually configure the URIs, resources, methods and parameters in a REST adapter in order to successfully consume the API.

Let's take for example the following Swagger ADL for the Oracle Field Service Cloud activities API (for which there isn't yet an out-of-the-box adapter in SOA Suite or ICS) :

https://apicatalog.oraclecloud.com/v1/services/oracle-public/ofsc-core/v1/apis/activities/canonical

If you clicked in the above you'll notice that tons of resources and methods are available (82 methods and 13 resources approximately). So imagine having to manually enter all of these in JDeveloper to configure the SOA Suite 12.2.1 REST adapter.. Yes possible but by any means practical. Far from it.

The solution

There is however a work around to this and its called API-Transformer


Developed by APIMATIC , API transformer is an online tool for converting ADL's and it supports the most popular formats (including all of the aforementioned ADLs):

Best of all is the fact that API transformer is also an API on its own right. Meaning that one could use this public API to build some sort of automation to facilitate the conversion between the Oracle supported formats.


Conclusions

APIs are great but the technologies and standards around it are still evolving. However the industry doesn't seem intimidated by this as the adoption of APIs continue to increase exponentially. Meaning that we practitioners are left having to deal with the complexity of adopting evolving paradigms without jeopardising the benefits that can be gained from their adoption. Luckily there are tons of open solutions out there that can be used to work around some of these complexities and API transformer is a good example of such.

In part II of this article I will show step by step how to consume an API defined in Swagger 2.0 from SOA Suite 12.2.1. For this I will transform the Swagger ADL to WADL, import it into a composite application using JDeveloper and the REST adapter and then implement end to end JSON to expose a generic API.

A Microservice Approach for Legacy Modernisation

$
0
0
Very large portion of the world’s business critical systems are considered to be ‘legacy’ –and so is the code underpinning them (ie COBOL, PASCAL, C, to name a few).  Although in many cases it is the case that these systems are robust, stable and fit for the main purpose they were originally built, they aren’t flexible and scalable enough to support emerging requirements mainly derived from a more demanding ‘always on the move’ and ‘always connected’ user.

These systems struggle to meet these demands mainly because of the ‘monolithic’ approach on which they were built and the complexity hidden in millions of lines of code that is only understood a very few hand-full of people that still remain active from the teams that several years ago developed these systems.

In almost an equal amount there have also been thousands of failed attempts to modernise these legacy systems. The ‘eating the elephant’ in one go approach certainly didn’t work, and the traditional SOA approach alone although worked till certain extend, it also fell short when it came down to addressing specific requirements around scalability and platform/service inter-dependencies.

In this presentation I talk about how a legacy modernisation framework based on Microservice Architecture (MSA) in conjunction with some other known SOA patterns (ie. ESB, API Gateway), can be applied to ‘eat the elephant one piece at the time’ but most importantly ‘without getting indigestion’.



I did this presentation at the AMIS Beyond the Horizon conference that took place near Amsterdam in June 2-3 2016. Thank you AMIS and Oracle ACE Director Lucas Jellema for the opportunity to present in what was a very unique and wonderful conference full of great people, knowledge and fun!

Comparing Oracle ICS connectors with Workday, Mule, Boomi and Azure

$
0
0
As SaaS adoption continue to increase in organisations of any size, it's only expected that different cloud vendors will stretch their cloud capabilities to try and increase their SaaS/PaaS/IaaS footprints in a clients landscape. This is particularly true for iPaaS related capabilities, as it seems that every cloud vendor has its own related offering and they are pushing it really hard to customers even if there really isn't a one to one fit.

The challenge is though, that organisations that don't carefully elaborate a cloud integration strategy and properly think this through, will almost certainly end up implementing point solutions using whichever iPaaS capability is available for the individual project.  This not only results in vendor lock-in but also increases the complexity and cost of integration.



To avoid this, the first step is to of course create a carefully thought cloud integration strategy with a clear objective in mind. This should be delivering a platform capable of supporting all integration needs (cloud-to-cloud, cloud-to-on-premise) in a seamless and consistent fashion without redundant infrastructures and capabilities. The concept should be something like this:



However the devil is in the detail, or so it goes.

One of the key reasons vendor lock-in occurs is simply because of misinformation. From my point of view, SaaS integration is all about connectivity. So without properly understanding 1) what are the connectivity requirements and 2) what platform best fits these connectivity needs in the short and long term, there is high probability that a solution will not be the right one (may be it will solve the short-term needs, but in the long-run it will probably add more complexity, cost hence risk).

The following table compares Oracle's Integration Cloud Service (ICS) connectors to other major iPaaS vendors (or at least the ones I've come across recently). The table is specially useful if you're in an Oracle SaaS adoption project and want to explain/justify why using ICS will make life easier.


#ConnectionsOracle Integration CloudWorkday Integration CloudMulesoft AnypointDell BoomiMicrosoft Azure Connectors
1Adobe eSign (in Using the Adobe eSign Adapter)YNYNN
2Advanced Queuing (AQ) (in Using the Advanced Queuing (AQ) Adapter)YNNNN
3Concur (in Using the Concur Adapter)YNYNN
4DocuSign (in Using the DocuSign Adapter)YNYNN
5Email (SMTP, POP3 or IMAP)YNYYY
6Eventbrite (in Using the Eventbrite Adapter)YNNNN
7Evernote (in Using the Evernote Adapter)YNNNN
8Facebook (in Using the Facebook Adapter)YNYNN
9File (in Using the File Adapter)YNYNY
10FTP (in Using the FTP Adapter)YNYYY
11Gmail (in Using the Gmail Adapter)YNNNN
12Google Calendar (in Using the Google Calendar Adapter)YNYYN
13Google Task (in Using the Google Task Adapter)YNYYN
14Integration Cloud Service MessagingYNNNN
15JMS (in Using the JMS Adapter)YNYYN
16LinkedIn (in Using the LinkedIn Adapter)YNYNN
17MailChimp (in Using the MailChimp Adapter)YNNYN
18Microsoft Calendar (in Using the Microsoft Calendar Adapter)YNYNY
19Microsoft Contact (in Using the Microsoft Contact Adapter)YNYNY
20Microsoft Email (in Using the Microsoft Email Adapter)YNYNY
21Microsoft SQL Server (in Using the Microsoft SQL Server Adapter)YNYYY
22MS Dynamics (via REST or Native)YNYNY
23MySQL (in Using the MySQL Adapter)YNYNN
24NetSuite Adapter CapabilitiesYNYYN
25On-premise integration agent  (not just an ESB onpremise)YNNYN
26Oracle Commerce Cloud (in Using the Oracle Commerce Adapter)YNNNN
27Oracle CPQ Cloud CapabilitiesYNNNN
28Oracle Database (in Using the Oracle Database Adapter)YNYYY
29Oracle E-Business Suite (in Using the Oracle E-Business Suite Adapter)YNYNN
30Oracle Eloqua CloudYNNNN
31Oracle ERP Cloud CapabilitiesYNYNN
32Oracle Field Service (in Using the Oracle Field Service Adapter)YNNNN
33Oracle HCM Cloud (excluding Taleo)YNNNN
34Oracle JD Edwards EnterpriseOne (in Using the JD Edwards EnterpriseOne Adapter)YNYNN
35Oracle Messaging Cloud ServiceYNNNN
36Oracle RightNow CloudYNYNN
37Oracle Sales CloudYNNNN
38Oracle Siebel (in Using the Oracle Siebel Adapter)YNYNN
39Oracle TaleoYNYYN
40Responsys (in Using the Responsys Adapter)YNNNN
41REST Adapter Capabilities (not just HTTP)YYYNN
42SalesforceYYYYY
43SAP (in Using the SAP Adapter)YNYYY
44SAP Ariba (in Using the SAP Ariba Adapter)YNYYN
45SOAP Adapter CapabilitiesYYYYY
46SurveyMonkey (in Using the SurveyMonkey Adapter)YNNNN
47Twilio (in Using the Twilio Adapter)YNNYY
48Twitter (in Using the Twitter Adapter)YNYNY
49Workday (via REST or Native)YYYNN

Below the sources of information I used in the comparison:

iPaaS. What is it exactly? is it on-premise software running on IaaS?

$
0
0
As cloud adoption continues to rise, the so called 'second wave' of cloud computing becomes less of a prediction and rather a reality we have to deal with. In the past 2 years or so for example, almost in every customer engagement I've had, 'the cloud' has been at the very least a topic of discussion. In most cases it has actually been within the scope of our activities.

This is not surprising of course as the term 'cloud' itself can mean ten different things to ten different people. The sad part is though, that is has been years since the first wave of cloud (started by Amazon) and there's still a fair degree of confusion in the topic.

In fact, I still often refer to the NIST definition of cloud to explain what cloud computing and PaaS actually is and how traditional on-premises middleware installed on IaaS isn't PaaS or iPaaS. This is in fact one of the main motivators of this post.

iPaaS

The term Integration Platform as a Service, or just iPaaS, is generally used when referring to integration capabilities delivered entirely on PaaS cloud infrastructure.

In terms of integration capabilities, iPaaS can deliver the same (and in many cases more) capabilities than the ones available in traditional on-premise middleware. Such capabilities should be sufficient to satisfy the main types of integration requirements:

Types of Integrations
It is perhaps because of such similarities that, in my experience, there still is a fair amount of misunderstanding of what iPaaS actually is, what it brings to the table and how it's different to traditional on-premise integration middleware.

Some for example wrongly believe that installing a traditional integration product (i.e. IBM BPM or Mule ESB) on IaaS infrastructure will make it iPaaS.

Well this is far from truth. Let me elaborate on why:

iPaaS characteristics

The following diagram is a summary of NIST definition of PaaS, it characteristics and how iPaaS relates to it:

iPaaS Characteristics
As the diagram suggests, for an integration capability (aka integration platform) to be truly iPaaS, it must comply with NIST's 'essential characteristics of cloud computing'. Following my own interpretation of such:
  1. On-demand and self-service: it should be possible, at any given point in time, to go to a cloud vendor website (i.e. https://cloud.oracle.com/en_US/integration), browse through the different iPaaS offerings, select the one wanted/needed, purchase it online, using a credit card of course, and in minutes get an email with all details of the instance (already installed and running), how to access it and even use it. No need to talk with a sales representative, negotiate license costs, provision infrastructure, install/configure the software, and so on.
  2. Broad network access: This is perhaps one of the most important characteristic. Network connectivity to/from iPaaS to other applications has to be fast, reliable and secured. Open internet connection can be unpredictable therefore the cloud vendor must provide alternative means to deliver dedicated high-speed connectivity. For example Oracle Cloud provides a service called Fast Connect, and Amazon a similar one called Direct Connect.
  3. Resource pooling: Compute resources (i.e. cpu, ram memory, disk space) should be allocated on-demand (without human-intervention) based on resource utilisation or via configuration if desired. It should be possible to increase or reduce resources either on demand and/or based on pre-configured rules.
  4. Rapid elasticity: During periods of high demand (i.e. black Friday), predicting resource usage can be almost imposable. A true iPaaS platform should be able to autoscale based on configurable rules and resource demand. Idea is that transaction peaks can be handled by scaling horizontally or vertically -without human intervention. When transaction throughput becomes stable, platform resources should reduce automatically to its original size. It should not be the case that it's possible to rapidly add more capacity, but not the other way around... 
  5. Measured service: pay-per-use / subscription-based charging model with complete transparency and visibility over usage and billing. For example, if a given iPaaS is charged based on number of connections to other applications, it should be possible to know exactly how many connections are being used -at any given point in time. If the number of connections is reaching the limit, a notification should be sent so it's possible to allocate more connections. If on the other hand, the number of connections is in average less than subscribed for, a notification should be sent suggesting to reduce the number of subscribed connections.
  6. Automatic application patching and upgrades: Although not explicitly mentioned, this is another key characteristic and possibly the one that makes iPaaS more distinctive from traditional on-premises middleware. Cloud vendors should be fully responsible for periodically applying patches and/or software upgrades to the purchased cloud infrastructure. It is the vendors responsibility to ensure that patches and upgrades applied are backward compatible and won't break any application.
Considering the aforementioned characteristics, it should hopefully be clear that iPaaS can't be simply delivered by installing traditional on-premise software on cloud infrastructure. 

Be watchful though: Some vendors might try to sell you 'the wooden bicycle' by simply rebranding their on-premises software as iPaaS when all they're doing is provisioning exactly the same on-premises software but on cloud infrastructure (i.e. Amazon EC2). This is known as Cloud Washing.

iPaaS & on-premise integration platforms co-existance

Even though iPaaS can independently satisfy cloud-to-cloud integration needs, it doesn't actually mean that on-premises middleware is no longer required. Quite the contrary.  Most organisations have already made considerable investments in on-premises integration capabilities. In such organisations, even the thought of replacing such capabilities will raise a few eyebrows. 

Instead, on-premise capabilities can continue to be leveraged not only to satisfy on-premises only integration use cases, but also to co-exist with an iPaaS solution to satisfy cloud to/from on-premises integration requirements.

The following diagram illustrates how typical integration patterns can be satisfied with a combination of iPaaS and on-premises integration capabilities.

Hybrid Integration Patterns
Another thing to bear in mind though, given that most software vendors are moving towards a cloud-first delivery model, new products, features, capabilities and even bug-fixes will be made available first to cloud applications and then (if so) to on-premise software.

Therefore in scenarios where for example a new integration capability (i.e. API management) is required which is not already available on-premises, it makes complete sense to consider the adoption of an iPaaS solution instead. Specially those that deliver flexible deployment models whereby runtime engines can be deployed on any infrastructure (cloud and/or on-premises) whilst the management console remains on the cloud.

Conclusion

The adoption of cloud (in all of its flavours: SaaS, PaaS or IaaS) combined with need for organisations to become more digital and user centric, mean that data is not only becoming more and more federated but accessing it in real time and from virtually anywhere is an absolute must. 

However there is no need to 'boil the ocean'. Organisations should continue to leverage their existing integration investments but in parallel define new integration strategies that identify what new capabilities are or will be needed in order to satisfy emerging integration requirements resulting from the adoption of cloud computing and digital transformation.

When possible iPaaS capabilities should be considered not only because they provide more cost-effective licensing models, but also because capability wise, they are better equipped to handle modern and emerging integration requirements. iPaaS also requires less effort to install, configure and run -as most of the work is done by the cloud vendor, including on-going patching and upgrades.

Lastly, avoid cloud washing by ensuring that the selected iPaaS platform satisfies all NIST's 'essential characteristics of cloud computing'. Read my previous blog for a nice comparison of different iPaaS vendors.

Oracle API Platform Cloud Service Overview

$
0
0
Oracle has recently announced the release of Oracle API Platform Cloud Service.

Here the official press release.

This new platform -not to be confused with Oracle's previous solution, has been built almost entirely from the ground up to satisfy modern API management requirements.

I have been lucky enough to be part of the beta programme and have actually been implementing the product for the last 4 months or so (but trying it for almost a year now). In this blog post I share some of the insight and experiences I've gained in the process.

What is the Oracle API Platform Cloud Service?
Is a 3rd generation API Platform that delivers a 'true hybrid' model that allows for APIs to be created, deployed and managed centrally (from the Oracle Cloud) whilst API gateways (engines that run the APIs) can be deployed in any cloud (i.e. Amazon, Azure, Oracle Cloud, IBM Softlayer/bluemix, etc) and/or on-premises.

In addition with the incorporation of Apiary into the portfolio, the platform also incorporates a solid/world-class API-first solution so developers also get the tools and means to properly design APIs either using Swagger or API blueprint (Apiary's own API design notation), whilst interacting with the API consumers and therefore ensuring that before any code is built, the API contract is fit-for-purpose.

API Platform Architecture
The platform consists of 7 key components as the diagram illustrates:


  • Management service: The management service is the cloud-based system that underpins the management console, developer portal and platform API. It's the engine of the entire platform. The brains.
  • Management Console:  As the name suggests this is where APIs, Gateways and User/Roles are managed. It's a role-based application so what a user can do pretty much depends on the role the user belongs to.
  • Developer Portal: A web-based application where developers can search and subscribe to APIs. This is where all of the API documentation can be found and also where application keys are provided after a subscription to an API takes place.
  • Platform API: The entire platform was built following an API-first model. In fact, it can be argued that management service is in fact an API, as everything that can be done (and more) via the management and developer portals can be done by directly invoking the Platform API. The platform API is also consumed by the gateways when phoning home to retrieve new API's, policies and also send analytics information.
  • Apiary: As previously mentioned, Apiary is a platform for designing APIs that encourages API designers to maintain an active dialogue with API consumers. Both the management and developer portals are already integrated with Apiary so when a user finds an API in the portal, the API specification (i.e. API blueprint) can also be accessed from one single place.
  • API Gateways: These are the engines that run the APIs and can be deployed anywhere. In any vendor's cloud and/or on-premises. Gateways communicate to the management service iby making API calls (feature known as "phone home"). In this model, it's the gateways responsibility to establish the communication to the "mother ship" (management service) and not the other way around. Because of this, the management of gateways becomes a lot easier as there is no need to open firewall ports (i.e. opening firewall ports) as all communications are outbound triggered.
  • Identity Cloud Service: Most organisations already have their own LDAP directory (i.e. MS Active Directory) where users and roles are managed. The Identity Cloud Service is used to allow the API platform to use an organisation's existing directory as the source for users and roles.
API Platform Roles
The platform by default support 5 types of roles.

  • Administrator: Super user of the platform. Has all rights to deal with user settings and also create/manage APIs and configure gateways.
  • Gateway manager: Role responsable for the gateway operations including deploying, registering, and managing gateways.
  • API manager: The API implementers roles as it gives users full lifecycle rights, including design, create and deploy APIs and also manage the API grants.
  • API designers: Individuals who take on a full or part-time responsibility (i.e. an architect or developer) to define APIs (either in swagger or API blueprints) using Apiary. 
  • Application developer: In other words, these are the API consumers. Users with this role can log into the portal and search/subscribe to APIs.
  • Gateway runtime: Not really a user role, it's a service account used by the gateways to communicate with the to the management service via the platform API. Users assigned this role can’t sign into the Management Portal or the Developer Portal.
User can be created and assigned to any of these roles (excluding Gateway runtime which is a service account). Platform restrictions will apply depending on what role a user belongs to.

Tutorials and Presentations
As mentioned earlier, I've had the opportunity to use the Oracle API Platform for a while now. Below two insightful presentations based the experience implementing the platform:

API Management and Microservices, a Match Made in Heaven
Oracle Code: London, April 2017


Oracle API Platform Cloud Service Best Practices & Lessons Learnt
PaaS Community Forum: Split, March 2017



Other related presentations:


Oracle Open World 2016 (San Francisco): Microservices and SOA

Oracle Open World 2016 (San Francisco): Implementing Enterprise API Management in the Oracle Cloud

Oracle Open World 2016 (San Francisco): API Management in the year 2026

AMIS Beyond Horizon (Utrecht) Microservice Approach for Legacy Modernisation

Conclusions
Since I got my hands into this product, I have been really impressed with the elegant, simplistic yet powerful architecture of the Oracle API Platform. It's a considerable step forward from it's predecessor solution but most importantly it was built with modern requirements in mind -meaning that the product doesn't really have any major baggage.

The platform in addition to be lightweight does not enforced an API implementation path. Customers will not be locked into an end to end vendor-stack. For example when using the Oracle API Platform, API applications can be implemented using any technology of choice. This is ideal in microservice architectures where the majority of developers prefer a polyglot programming style. Other vendors for example will force you into a specific implementation path to implement, test and deploy your API applications -which results in vendor lock in.

Because gateways are also fairly lightweight (although I've already heard that future releases of the gateways will be even more lightweight), they really are microgateways and cannot be compared to the traditional appliance-centric, heavy-weight, second generation API platforms.

One more feature that really makes the product unique is the "phone-home" feature of the gateways. What it means is that gateways make a call to the management service to get all instructions regarding APIs to deploy and policies to apply. Meaning that more and more gateways can be added without the typical operations burden of opening firewall ports and troubleshooting failed deployments by looking at logs...

Lastly, the acquisition and incorporation of Apiary into the solution, truly is the icing on the cake! as the solution not only has a simple -yet robust runtime environment, but also a best-in-class API-first design capability.

Well done Vikas, JakubDarko, and Robert and the rest of the Oracle product development and engineering team for finally releasing a world-class future-ready API platform.


Viewing all 31 articles
Browse latest View live