Web Services
"Web Services" is the name that has been given to the concept of exposing core functionality of a specific web application, website or web page for the purpose of allowing that service to be packaged up and utilized by other web services, web applications, websites or web pages either by making requests and pulling down data, or running entire interfaces from the site within their own interface.
The reputation of the Web Services term being used more in an enterprise setting than in a small business or startup setting (which favors the simple yet overloaded term "API"), has earned Web Services the title of: "the business side of APIs"
Contents
What are Web Services?
Web Services are:
* Small units of code * Designed to handle a limited set of tasks or functionality * Programs which use XML based communicating protocols (or JSON, which has become more common for the average simplistic/consumer API) * Independent of Operating Systems * Independent of Programming Languages * Connect people, systems and devices through Endpoints * May use a description language such as WSDL, WADL or OpenAPI (Swagger) to describe their functionality
Benefits of Web Services
* Easier to communicate between applications * Easier to reuse existing services * Easier to distribute information to more consumers * Rapid development
Web services make it easier to communicate between different applications. They also make it possible for developers to reuse existing web services instead of writing new ones.
Web services can create new possibilities for many businesses because it provides an easy way to distribute information to a large number of consumers. One example could be flight schedules and ticket reservation systems.
Use a web development platform that will help you save a lot of time and bring excitement to your daily development work. It will also create professional best-practices around your code development and team collaboration.[1]
Approaches
Web Services typically make use of either WSDL or SOAP protocols for exposing their functionality, but may also alternatively rely on one of the following standard web protocols as well HTTP, REST, DIG, XML, and UDDI.
Monolith
Monolithic architectures are tightly-coupled applications or services where all code (front-end & back-end, APIs, SDKs, integration/glue code, custom business logic, etc) lives in a single project and repository, deployed to a single Web Server and/or Container which needs to be "scaled horizontally" when usage begins to outpace throughput/capacity.
See section: Architecture
SOA
Service-Oriented Architecture (SOA) begins the move away from Monoliths by breaking up logically related parts of the monolith into individual applications/systems deployed separately as Web Services which expose some or all of their functionality via APIs. There is a potential (when each separate Web Service and the integrations between them are architected correctly) to realize "loose coupling" using SOA.
See section: SOA
Microservices
Microservices takes the SOA approach to the next level of granularity where complex applications are decomposed into the smallest possible, independent processes, communicating with each other using language-agnostic APIs. These services are specialized, "highly decoupled", with each focused on doing a small task at a time, rather than many complex background operations, calls, or evaluations.
Any good Microservices architecture should have:
- services which are easy to replace
- services which are highly modularized (small set of functionality per service)
- services must then be organized around their capabilities (similar services are grouped together in API structure)
- lend itself to a Continuous Delivery software development process
- is distinct from SOA in that the latter aims at integrating various (Business) applications, whereas several Microservices belong to one domain/application
- wikipedia: Microservices
- Martin Fowler - Microservices: https://martinfowler.com/articles/microservices.html
- The 12-Factor App: https://12factor.net/ (design patterns for Microservices)
- Microservices Architecture Design Pattern: http://microservices.io/patterns/microservices.html (links to examples of usage at large companies and real demos)[4]
- Microservices explained: http://martinfowler.com/articles/microservices.html (first major article on Microservices, and the most-quoted)
- What Are Microservices and Why Are They Important: http://www.brunton-spall.co.uk/post/2014/05/21/what-is-a-microservice-and-why-does-it-matter/
- Apache Camel for Microservice Architectures: http://java.dzone.com/articles/apache-camel-micro%C2%ADservice
- Microsoft Azure - Service Fabric: http://azure.microsoft.com/en-us/services/service-fabric[5][6]
- Mulesoft’s “guide to Contiuous Innovation” via Microservices best practices: https://www.mulesoft.com/sites/default/files/resource-assets/MuleSoft%20%20-%20Best%20Practices%20for%20Microservices.pdf
- Microservice Websites -- Building consumer-facing websites with multiple teams: https://gustafnk.github.io/microservice-websites/[7][8]
[9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70]
CQRS
Command Query Responsibility Segregation (CQRS) is an architectural pattern for overcoming Microservice and Database separation to enable joining disparate data from several data sources.
- Pattern -- Command Query Responsibility Segregation (CQRS): http://microservices.io/patterns/data/cqrs.html
- Concepts of CQRS: https://dzone.com/articles/concepts-of-cqrs
[71] [72] [73] [74] [75] [76] [77] [78]
Saga pattern
- Three Important Patterns for Building Microservices: https://dzone.com/articles/3-most-important-patterns-for-building-microservic
ServiceMesh
- Do I Need an API Gateway if I Use a Service Mesh?: https://blog.christianposta.com/microservices/do-i-need-an-api-gateway-if-i-have-a-service-mesh/
Istio
- Istio: https://istio.io/ | SRC
- OpenShift E-Learning -- Service Mesh (Istio-specific courses): https://learn.openshift.com/servicemesh/
[80] [81] [82] [83] [84] [85] [86] [87] [88] [89]
WS-*
WS-* is a prefix used to indicate specifications associated with Web Services and there exist many WS-* standards including:
- WS-Addressing
- WS-Discovery
- WS-Federation
- WS-Policy
- WS-Security
- WS-Trust.
- wikipedia: WS-*
- PHP XML Signature: https://www.phpclasses.org/package/11426-PHP-Parse-and-create-XML-documents-signed-digitally.html (Parse and create XML documents signed digitally)
WSSE
Number 5 in the list above, Web Service Security (WSSE) is one of the fundamental technologies of WS-* that offer greater levels of authentication and authorization capabilities than regular HTTP/S used by REST.
Vendors
Apache
CXF
- Apache CXF: http://cxf.apache.org
- Java Web services -- Introducing CXF: http://www.ibm.com/developerworks/java/library/j-jws12.html
Axis
- Axis2: http://ws.apache.org/axis2
Sun
Sun's Java has been a leading purveyor of Web Services development and real-world business cases.
IBM
IBM targets small and mid-sized Enterprises with their Managed Web Services platforms. [94] In addition, IBM has launched a new project under the
AlphaWorks program for making Web Services much easier and more accessible to the average developer. [95]
- OpenLibery: https://openliberty.io/ (IBM's OSS Microservices project)[96]
Oracle
Oracle allows Web Services to interface with their database technology, and even permits the customized creation of unique Web Services from within
the Database Adminstration console. [97]
Microsoft
Farbeit for Microsoft to miss out on the action, and they also have their own sweet of .NET Web Service solutions.[98]
Google has been a leader in creating unique Web Services of their own, which could then be used by developers, however of these efforts few have been
truly open in nature, though the company ironically enjoys an ora of openness, thanks mainly to its great comminucation streams with developers and
projects like "Google Summer of Code" where Google hires several hundred student developers over the summer to work on various open source projects.
Their latest announcement for the Google AppEngine[99] is another major initiative towards empowering smaller, independent software developers through
free and low-cost alternatives for application hosting, plus access to the Google distributed computing cloud.[100].
[101]
[102]
Yahoo!
Yahoo! has recently stated[103] that it would take an Open approach and strategy for all future Web Services, at is at the same time attempting to open up its existing Web services. This was the strategy for 2006-2011, unfortunately after that period the focus shifted to monetization and those Yahoo! Web Services not making substantial profits/returns were discontinued or deprecated over the next few years. The only remaining substantial services were the [ Yahoo! Weather], [ Yahoo! Finance (Stock Quotes)], [ Yahoo! News] and [ YQL] service. Many considered this the most logical way for Yahoo! to avoid a hostile takeover by Microsoft[104], but ironically enough (or perhaps predictably) their attempt to bring in "big-money enterprise monetization-minded" executives ended up resulting in further Yahoo! property sell-offs, firings, layoffs, service discontinuations and an eventual sale to Verizon and re-branding of Yahoo! to Altaba. [105] [106] [107] [108] [109] [110] [111] [112] [113]
Service Directories
- Backstage (Web Service catalog): https://backstage.io/ | SRC | DOCS
- WebServiceX: http://www.webservicex.net/ | CurrencyWS | Stocks | ValidateCreditCard | GeoIP
- XMethods: https://web.archive.org/web/20070217165335/http://www.xmethods.net/ (full list)[114]
- CDYNE: http://cdyne.com/ | PhoneNumberVerification | Phone-Notify | SMS-Notify | IP2GEO
- Informatica -- Data-as-a-Service: https://www.informatica.com/products/data-quality/data-as-a-service/free-trials.html (formerly StrikeIron WebServices) | AddressVerification | Sales Tax Calculation | Do Not Call List Verification
- seekda: http://webservices.seekda.com/ (was once the world's largest XML-RPC & SOAP Web Services search engine, now defunct)[115][116][117][118][119][120]
EXAMPLES
- REDDIT - Experimental API - Add ID parameter to "info" API call: http://code.reddit.com/ticket/154
- Reddit’s Secret API: http://blog.programmableweb.com/2008/11/25/reddits-secret-api/
NDFD
- NDFD - WSDL: http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl | http://www.weather.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php
- NDFD - SOAP request builder: http://www.weather.gov/forecasts/xml/SOAP_server/ndfdXML.htm
- More Examples with Parsing NDFD Data in PHP: http://phpstarter.net/2009/03/more-examples-with-parsing-ndfd-data-in-php/
Other
- WebServiceX - Stock Lookup: http://www.webservicex.net/stockquote.asmx | EXAMPLE - Apple stock price
- WebServiceX - Currency Convertor: http://www.webservicex.net/CurrencyConvertor.asmx | EXAMPLE - Canadian to American exchange rate
auth-token=jcCZ66ljo2gWPgOjuX3M7TubmV+hzWWs2cGEYSZM4t06CJWVGZf2DqzlYAjjjxNmKrVv74XiTILVNkYOZ5YlhA== EXAMPLE]
- SmartyStreets (formerly QualifiedAddress) - LiveAddress validation API: http://smartystreets.com/products/liveaddress-api | [https://api.qualifiedaddress.com/street-address/?street=1600+Amphitheatre+Parkway&city=Mountain+View&state=CA&zipcode=94043&candidates=5&
- USPS ZipCode Lookup/Validation: EXAMPLE
- Movie Information: http://www.ignyte.com/webservices/ignyte.whatsshowing.webservice/moviefunctions.asmx
- Lottery Feed: http://www.lotteryfeed.com/xml_formats.html[121][122][123][124]
- Chicago Transit Authority (CTA) -- Bus Tracker APIs: https://www.transitchicago.com/developers/bustracker/ | DOCS
- Affirmations API: https://www.affirmations.dev/
- They Said So - Quotes API: https://quotes.rest/ (OpenAPI 3.x)
- I can haz "Dad Jokes" API: https://icanhazdadjoke.com/api
- Chuck Norris jokes API: https://api.chucknorris.io/[125]
- Star Wars API: https://swapi.dev/
- LOTR - "The One ring" API: https://the-one-api.dev/
- PokeAPI: https://pokeapi.co/ | - Pokedex (Pokemon characters/data)
- REST countries: https://restcountries.eu/
- RandomUser API: https://randomuser.me/documentation | EXAMPLE - fields to include | EXAMPLE - limit results | EXAMPLE-set field constraints
- Simpsons quotes API: https://thesimpsonsquoteapi.glitch.me/quotes
Resources
- Web Services Architecture Usage Scenarios: https://www.w3.org/TR/ws-arch-scenarios/
- Useful Lesser Known Websites & Web Services: https://www.pinterest.ca/pin/68726038084/
- Free-Web-Services: http://free-web-services.com/ (directory of both REST & SOAP web services to add to your website or application)
- PHP Web services: SOAP, REST, WS-*, SOA and WOA with PHP.: http://phpwebservices.blogspot.com/2008/12/rest-vs-soap.html
- SOAP and REST Protocols for CALAIS - Source Code Examples: http://www.opencalais.com/taxonomy/term/44
- WSO2 Tools: http://wso2.org/tools
- Transforming SOAP-Messages with XSLT: http://blog.jdevelop.eu/?p=74[126][127]
- ZooKeeper for Microservice Registration and Discovery: http://dzone.com/articles/connect-the-unconnected-how-to-succeed-at-digital
- GCP -- Microservices demo: https://github.com/GoogleCloudPlatform/microservices-demo (for an Online Boutique shop with Ads, Recommendations, Email, Shopping Cart, Shipping Calculator, Currency Converter, Payment facilitation, Checkout)
Tutorials
- Web Services - REST .vs. SOAP: https://blogs.oracle.com/milan/entry/web_services_rest_vs_soap
- JAVA -- Working with Web Services in JAX-WS (SOAP) and JAX-RS (REST): http://docs.oracle.com/javaee/6/tutorial/doc/bnayk.html[128][129]
- JAX-RS .vs. Spring for REST Endpoints: https://dzone.com/articles/lets-compare-jax-rs-vs-spring-for-rest-endpoints
- NetBeans - Web Services Learning Trail: http://netbeans.org/kb/trails/web.html
- Three Minutes to a Web Service -- Write a Web service in 15 lines of code with JAX-RPC: http://www.artima.com/lejava/articles/threeminutes.html
- Java Web Services Tutorial: http://java.sun.com/blueprints/webservices/using/webservbp.html
- Service layer and DAO architecture: http://biese.wordpress.com/2007/10/08/service-layer-and-dao-architecture/
- Getting Started with JAX-WS Web Services (in NetBeans): http://netbeans.org/kb/docs/websvc/jax-ws.html?intcmp=925655
- Creating a JAX-WS Web Service and Clients with EJB 3.1 Singleton Bean (JAVA): http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/EJBSingletonWebServices/SingletonWebServices.html
- Customising JAX-WS prefix of a SOAP response: https://stackoverflow.com/questions/12889943/customising-jax-ws-prefix-of-a-soap-response
- What’s package-info.java for?: https://www.intertech.com/Blog/whats-package-info-java-for/
- Web Service Interoperability (consume a .NET Web Service in Java): http://www.dzone.com/links/r/web_service_interoperability_2.html
- Parse Weather Forecast Data (from the NOAA's NDFD web service) in PHP: http://phpstarter.net/2009/02/parse-weather-forecast-data-from-the-ndfd-in-php/
- Reading Security Header in JAX-WS web service: https://forums.oracle.com/thread/2337032?tstart=15
- Why REST + JSON is preferred over SOAP for mobile web services: http://www.bamboorocketapps.com/rest-json-vs-soap-xml/
- SOAP Web Service Security Example: http://www.mulesoft.org/documentation/display/current/SOAP+Web+Service+Security+Example
- Using Message Security with Java WSDP: http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/2.0/tutorial/doc/Security-WebSvcs7.html
- Application Authentication with JAX-WS: http://www.mkyong.com/webservices/jax-ws/application-authentication-with-jax-ws/
- Web services using Apache Axis2 - How to build, invoke, reverse-engineer a Web Service using Apache Axis2: http://www.ibm.com/developerworks/webservices/library/ws-apacheaxis/section2.html
- Developing a web service (in J2EE) and consuming it with J2ME Client: http://www.ibm.com/developerworks/webservices/library/ws-devwsconsum/section3.html
- Understanding SOAP and REST Basics: http://blog.smartbear.com/apis/understanding-soap-and-rest-basics/
- Microservices with Spring: http://dzone.com/articles/microservices-with-spring
- Create microservices with .NET and ASP.NET Core: https://docs.microsoft.com/en-us/learn/paths/create-microservices-with-dotnet/
- Securing Microservices - The API gateway, authentication and authorization: https://sdtimes.com/apis/securing-microservices-the-api-gateway-authentication-and-authorization/
- GraphQL is (rather "could become") the New API Gateway: https://levelup.gitconnected.com/graphql-is-the-new-api-gateway-383edeed4bcd
External Links
- Apache CXF vs. Apache AXIS vs. Spring WS: http://architects.dzone.com/articles/apache-cxf-vs-apache-axis-vs
- W3C Talk on SOAP .vs. REST Web Services: http://www.w3.org/2005/Talks/1115-hh-k-ecows/
- SOAP and REST a Perspective (video): http://channel9.msdn.com/posts/rojacobs/endpointtv-SOAP-and-REST-a-Perspective/
- Compare RESTful vs SOAP Web Services: http://java.dzone.com/articles/compare-restful-vs-soap-web
- How To Make Your Web Service More Developer Friendly: http://blog.programmableweb.com/2009/01/13/how-to-make-your-web-service-more-developer-friendly/
- Making Your Webservice More Developer Friendly: http://www.callingshotgun.net/geekery/making-your-webservice-more-developer-friendly/
- Google AppEngine: http://code.google.com/appengine/
- February 07, 2007Screencast #WS1: Web services development using NetBeans IDE and GlassFish: http://blogs.sun.com/arungupta/entry/screencast_ws1_web_services_development
- Web Services are Not Slow: http://wso2.org/library/588
- How to call a web service from a browser: http://devdaily.com/blog/post/java/how-to-call-web-service-from-browser/
- Netbeans - Introduction to Web Services: http://netbeans.org/kb/docs/websvc/intro-ws.html
- Web Services discussion worth watching: http://www.advogato.org/article/464.html
- Web Service performance benchmarks (REST is in, SOAP is out... but JSON not great for large datasets): http://www.jamesward.com/census/
- XML Binding Frameworks in the Context of Service-Oriented Architecture: http://soa.sys-con.com/node/114130
- DEMO on a SOAP and REST Client with PHP: http://www.dimuthu.org/blog/2008/10/17/demo-on-a-soap-and-rest-client-with-php/
- NetBeans to Generate Simpler RESTful Web Services: http://netbeans.dzone.com/nb-generate-simpler-rest
- Three steps toward the glory of REST: http://martinfowler.com/articles/richardsonMaturityModel.html
- RESTful Web Services (in Java): http://www.oracle.com/technetwork/articles/javase/index-137171.html
- Richardson Maturity Model for RESTful Web Services: http://martinfowler.com/articles/richardsonMaturityModel.html
- How we ended up with microservices (at SoundCloud): http://philcalcado.com/2015/09/08/how_we_ended_up_with_microservices.html
- Building Microservices -- Inter-Process Communication in a Microservices Architecture: http://dzone.com/articles/building-microservices-inter-process-communication-1
- Introducing frock - Easy fake services for a Microservices environment: http://www.urbanairship.com/blog/introducing-frock-easy-fake-services-for-a-microservices-environment
- Service Delivery Review -- The Missing DevOps Feedback Loop?: https://www.infoq.com/articles/service-delivery-review-missing-devops-feedback-loop
- Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RESTful Web Services: https://www.slideshare.net/ecosio/presentation-slideshare-34325282
- Applying MVC Pattern to Web Services: http://navveenbalani.com/index.php/articles/applying-mvc-pattern-to-web-services/
- We went Monorepo (even with Microservices): https://medium.com/invisible-reports/report-we-went-monorepo-c0aadd144fb
- What is a "Service" banner?: https://blog.shodan.io/what-is-a-banner/
- Microservice Architecture and its 10 Most Important Design Patterns: https://towardsdatascience.com/microservice-architecture-and-its-10-most-important-design-patterns-824952d7fa41
References
- ↑ W3Schools on Web Services: http://w3schools.com/webservices/default.asp
- ↑ "Big Ball of Mud" thesis on Software Architecture from DDD-perspective: http://www.laputan.org/mud/mud.html
- ↑ A Transition From Monolith to Microservices: https://dzone.com/articles/a-transition-from-monolith-to-microservices
- ↑ Microservices Solution Patterns -- 5 options visualized: https://dzone.com/articles/microservices-solution-patterns-1
- ↑ Microsoft readies first developer preview of its new microservices Service Fabric: http://www.zdnet.com/article/microsoft-readies-first-developer-preview-of-its-new-microservices-service-fabric/
- ↑ Announcing Azure Service Fabric: Reducing Complexity in a Hyper-scale World: http://azure.microsoft.com/blog/2015/04/20/announcing-azure-service-fabric-reducing-complexity-in-a-hyper-scale-world/
- ↑ Microservice Websites: http://microservice-websites.netlify.com (this architectural approach promises "scalable development of an evolvable system with great mobile performance")
- ↑ I don’t understand micro-frontends: https://medium.com/@lucamezzalira/i-dont-understand-micro-frontends-88f7304799a9
- ↑ Design Pattern -- Microservice Architecture: https://microservices.io/patterns/microservices.html
- ↑ Microservices -- Five Architectural Constraints: http://java.dzone.com/articles/microservices-five
- ↑ Monolithic Architecture .vs. Microservices -- Choosing the Right Architecture for the Project: https://medium.com/@yellow/monolithic-architecture-vs-microservices-choosing-the-right-architecture-for-the-project-4985b2253778
- ↑ CERN Data Centre Evolution: https://www.slideshare.net/gmccance/cern-data-centre-evolution (source of comparison of "VMs are like Pets, Containers are like Cattle")
- ↑ Migrating to Cloud Native with Microservices: https://www.slideshare.net/InfoQ/migrating-to-cloud-native-with-microservices
- ↑ Microservices in Production - the Good, the Bad, the it Works: http://highscalability.com/blog/2014/10/27/microservices-in-production-the-good-the-bad-the-it-works.html
- ↑ Microservices - Decomposing Applications for Deployability and Scalability: http://www.infoq.com/microservices | E-ZINE | PRESENTATION
- ↑ The Rise of Microservices : http://www.appcentrica.com/the-rise-of-microservices/
- ↑ Are microservices for real, or just the latest buzzword?: http://www.zdnet.com/article/a-few-words-about-microservices/
- ↑ To be a Microservice -- How smaller parts of bigger applications could remake IT: https://www.zdnet.com/article/to-be-a-microservice-how-smaller-parts-of-bigger-applications-could-remake-it/
- ↑ Adopting Microservices - Getting Started with Implementation: http://java.dzone.com/articles/adopting-microservices-getting
- ↑ Java Microservices -- A Practical Guide: https://www.marcobehler.com/guides/java-microservices-a-practical-guide
- ↑ Adopting Microservices at Netflix - Lessons for Architectural Design: http://java.dzone.com/articles/adopting-microservices-netflix
- ↑ Microservices is more than a buzzword: http://searchsoa.techtarget.com/feature/Microservices-is-more-than-a-buzzword
- ↑ Developers ride the microservices wave: http://searchcloudapplications.techtarget.com/tip/Developers-ride-the-microservices-wave
- ↑ Microservices - Not a free lunch!: http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
- ↑ Microservices Architecture: http://progressivecoder.com/microservices-architecture/
- ↑ Kong goes open source - Mashape dubs it the first"Mmicroservices Management" layer: http://www.zdnet.com/article/kong-goes-open-source-mashape-dubs-it-the-first-microservices-management-layer/
- ↑ Agile coding in enterprise IT - Code small and local with Microservices: http://www.pwc.com/us/en/technology-forecast/2014/cloud-computing/features/microservices.jhtml
- ↑ Microservice Hybrids and Alternatives: http://java.dzone.com/articles/microservice-hybrids-and
- ↑ 8 Questions You Need to Ask About Microservices, Containers & Docker in 2015: http://java.dzone.com/articles/8-questions-you-need-ask-about
- ↑ Monolithic Core vs Full Microservice Architecture: http://java.dzone.com/articles/monolithic-core-vs-full
- ↑ Moving to Data Services for Microservices: http://dzone.com/articles/moving-to-data-services-for-microservices?oid=cloud
- ↑ Monolithic to Microservices Refactoring for Java EE Applications: http://dzone.com/articles/monolithic-to-microservices-refactoring-for-java-e
- ↑ Martin Fowler on the Microservice Premium: http://dzone.com/articles/martin-fowler-on-the-microservice-premium
- ↑ Building Microservices - Inter-Process Communication in a Microservices Architecture: https://dzone.com/articles/building-microservices-inter-process-communication-1
- ↑ How to Organize Your Code (when writing Microservices): https://dzone.com/articles/how-to-organize-your-code?utm_source=Top 5&utm_medium=email&utm_campaign=top5 2016-09-09
- ↑ Microservices Arrived at Your Home: http://dzone.com/articles/microservices-arrived-at-your-home (Mixing a few JBoss tools, Apache Camel, OpenShift Enterprise, and a little secret sauce to make your home smarter.)
- ↑ A busy Java developers guide to developing microservices on Kubernetes and docker: http://blog.fabric8.io/a-busy-java-developers-guide-to-developing-microservices-on-kubernetes-and-docker-98b7b9816fdf#.8xn46dj5y
- ↑ Migrating to Microservices: https://dzone.com/articles/migrating-to-microservices
- ↑ Spring Boot & Microservices: https://dzone.com/storage/assets/6459742-dzone-rc247-gettingstartedwithspringbootandmicrose.pdf
- ↑ 5 Microservices Learning Mistakes Software Developers Make: http://dzone.com/articles/05-microservices-learning-mistakes-software-develo
- ↑ Building Microservices Using Spring Boot and Securing Them With OAuth and OpenID - Part 1: https://dzone.com/articles/building-microservice-using-spring-boot-and-secure
- ↑ 10 Best Practices for Microservice Architectures: https://dzone.com/articles/10-best-practices-for-microservice-architectures
- ↑ Microservices vs. SOA — Is There Any Difference at All?: https://medium.com/@kikchee/microservices-vs-soa-is-there-any-difference-at-all-2a1e3b66e1be
- ↑ Microservice Front-End - A Modern Approach To The Division Of The Front: https://www.smartspate.com/microservice-front-end/
- ↑ Walking the wire -- Mastering the Four Decisions in Microservices Architecture: https://medium.com/systems-architectures/walking-the-microservices-path-towards-loose-coupling-few-pitfalls-4067bf5e497a
- ↑ A Microservices implementation journey — Part 1: https://koukia.ca/a-microservices-implementation-journey-part-1-9f6471fe917
- ↑ Microservices Security Patterns & Protocols with Spring & PCF: https://www.infoq.com/presentations/microservices-security-spring-pcf
- ↑ Implementing Microservices Security Patterns and Protocols with Spring Security: https://www.infoq.com/presentations/microservices-spring-security-5-1/
- ↑ Pattern -- Microservice Architecture: https://microservices.io/patterns/microservices.html
- ↑ Microservices Chassis Pattern: https://dzone.com/articles/ms-chassis-pattern
- ↑ Microservices and DevOps Using Java, Spring Boot, Git Flow, Jenkins, and Docker: https://dzone.com/articles/microservices-and-devops-1
- ↑ Where Is My Cache? Architectural Patterns for Caching Microservices: https://dzone.com/articles/where-is-my-cache-architectural-patterns-for-cachi
- ↑ Migrating to Microservices – Take Baby Steps with Your Monolithic: https://www.deployhub.com/migrating-to-microservices-step-1-define-your-domains/
- ↑ Introduction to Micro-Frontend Architecture: https://dzone.com/articles/introduction-to-micro-frontends-architecture
- ↑ STOP!! You don’t need Microservices (every time anyway): https://medium.com/swlh/stop-you-dont-need-microservices-dc732d70b3e0
- ↑ Java/Cloud -- How to Quickly Create a Kubernetes-Ready REST Microservice: https://dzone.com/articles/javacloud-how-to-quickly-create-a-kubernetes-ready
- ↑ Conquering the Microservices Dependency Hell at Postman, with Postman (Part 1 — Introduction): https://medium.com/better-practices/conquering-the-microservices-dependency-hell-at-postman-with-postman-part-1-introduction-a1ae019bb934
- ↑ How Postman Engineering does microservices: https://medium.com/better-practices/how-postman-engineering-does-microservices-aa026a3d682d
- ↑ Microservice Trade-Offs: https://martinfowler.com/articles/microservice-trade-offs.html
- ↑ Microservices for Life: https://blog.scottlogic.com/2020/08/24/microservices-for-life.html
- ↑ Design Patterns for Microservice-To-Microservice Communication: https://dzone.com/articles/design-patterns-for-microservice-communication
- ↑ Monolith to Microservices With the Strangler Pattern: https://dzone.com/articles/monolith-to-microservices-with-the-strangler-patte
- ↑ Lessons From the Birth of Microservices at Google: https://dzone.com/articles/lessons-from-the-birth-of-microservices-at-google
- ↑ Why Proxies Are Important for Microservices: https://dzone.com/articles/why-proxies-are-important-for-microservices
- ↑ Microservices Observability -- Polar (Fitness tracker) mobile app example: https://dzone.com/articles/microservices-observability
- ↑ Data movement for Google services at Netflix: https://netflixtechblog.medium.com/data-movement-for-google-services-at-netflix-9a77ca69f7c4
- ↑ Review of Java-based Microservices Frameworks - A Look at Spring Boot .vs. Alternatives: https://dzone.com/articles/not-only-spring-boot-a-review-of-alternatives
- ↑ Microservice Architecture roadmap: https://dzone.com/articles/microservice-roadmap
- ↑ Best practices to communicate between Microservices: https://irfanyusanif.medium.com/how-to-communicate-between-microservices-7956ed68a99a (Sync .vs. Asyc - HTTP .vs. RabbitMQ example in C#)
- ↑ Say NO to a shared “custom” library in Microservices: https://medium.com/@madhuri.pednekar/say-no-to-a-shared-custom-library-in-microservices-ed6ff46160a4
- ↑ Introduction to CQRS: https://www.codeproject.com/Articles/555855/Introduction-to-CQRS
- ↑ CQRS and Event Sourcing Intro for JAVA Developers: https://github.com/asc-lab/java-cqrs-intro
- ↑ CQRS and Event Sourcing Intro for C# Developers: https://github.com/asc-lab/dotnet-cqrs-intro
- ↑ Command and Query Responsibility Segregation (CQRS) pattern: https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs
- ↑ CQRS and Event Sourcing in Java: https://www.baeldung.com/cqrs-event-sourcing-java | SRC
- ↑ A Guide to the Axon Framework (Java CQRS lib): https://www.baeldung.com/axon-cqrs-event-sourcing
- ↑ Martin Fowler - what I mean by "Event-driven": https://martinfowler.com/articles/201701-event-driven.html
- ↑ CQRS & Event Sourcing in Java: https://www.baeldung.com/cqrs-event-sourcing-java
- ↑ The Complete Guide to Service Mesh (by service provider Aspen Mesh): https://aspenmesh.io/landing_page/the-complete-guide-to-service-mesh/
- ↑ RedHat -- What is Istio?: https://www.redhat.com/en/topics/microservices/what-is-istio
- ↑ Google Cloud -- What is Istio?: https://cloud.google.com/learn/what-is-istio
- ↑ Microsoft Azure -- Istio overview: https://docs.microsoft.com/en-us/azure/aks/servicemesh-istio-about
- ↑ IBM -- Learn Istio: https://www.ibm.com/cloud/learn/istio
- ↑ What is Istio? The Kubernetes service mesh explained: https://www.infoworld.com/article/3328817/what-is-istio-the-kubernetes-service-mesh-explained.html
- ↑ IBM Dev -- Cloud Native Starter - Java EE based Microservices on Kubernetes and Istio: https://github.com/ibm/cloud-native-starter (Istio microservice - "polyglot" service mesh example)
- ↑ Microservices Journey from Netflix OSS to Istio Service Mesh: https://dzone.com/articles/microservices-journey-from-netflix-oss-to-istio-se
- ↑ Istio as an Example of When Not to Do Microservices: https://blog.christianposta.com/microservices/istio-as-an-example-of-when-not-to-do-microservices/
- ↑ Programming microservices communication with Istio — Part 1 - setting up (SCREENCAST): https://medium.com/@alexsandrosouza/programming-microservices-communication-with-istio-screencast-b78cce9211df
- ↑ Programming microservices communication with Istio — Part 2 - State of the art in microservices: https://towardsdatascience.com/moving-from-netflix-oss-to-istio-state-of-the-art-in-microservices-265b306724fc
- ↑ HTTP Basic Auth and WS-Security username/password authentication: https://vvratha.blogspot.com/2013/09/http-basic-auth-and-ws-security.html
- ↑ Sun Web Services: http://java.sun.com/webservices/
- ↑ Java Blueprints: https://blueprints.dev.java.net/servlets/NewsItemView?newsItemID=5231
- ↑ Java Petstore: http://java.sun.com/developer/technicalArticles/J2EE/petstore/
- ↑ IBM SOA and WebServices: http://www.ibm.com/developerworks/webservices
- ↑ Web Services Toolkit: http://www.alphaworks.ibm.com/tech/webservicestoolkit
- ↑ Building an "open liberty" web application with Maven: https://openliberty.io/guides/maven-intro.html#testing-the-web-application
- ↑ http://www.oracle.com/appserver/web-services-manager.html
- ↑ http://msdn2.microsoft.com/en-us/webservices/default.aspx
- ↑ http://radar.oreilly.com/archives/2008/04/app-engine-host-your-python-apps-with-google.html
- ↑ Google Summer of Code: http://code.google.com/soc/
- ↑ Google's AppEngine thoughts http://blog.cbcg.net/articles/2008/04/08/google-appengine-thoughts
- ↑ http://highscalability.com/google-appengine-first-look
- ↑ http://www.techcrunch.com/2008/02/25/yahoo-announces-open-search-platform/
- ↑ "The new Yahoo! - Sticky, Viral and Most of all Friendly": http://www.techcrunch.com/2008/04/24/the-new-yahoo-sticky-viral-and-most-of-all-friendly/
- ↑ Yahoo shifts to open-source scripting: http://www.news.com/2100-1023-963937.html
- ↑ Yahoo! Open Search Ecosystem: http://www.ysearchblog.com/archives/000527.html
- ↑ Yahoo! opens searches for Mobile: http://news.yahoo.com/s/nf/20080403/bs_nf/59097
- ↑ Yahoo OpenSources Distributed Computing: http://www.betanews.com/article/Yahoo_Debuts_OpenSource_Distributed_Computing/1194908197
- ↑ Yahoo's $350M Open Source Pick Up: http://www.internetnews.com/dev-news/article.php/3700041
- ↑ Open Season at Yahoo: http://kara.allthingsd.com/20080418/open-season-at-yahoo/
- ↑ Yahoo’s remaining assets to rebrand after sale to Verizon in 2017: https://techcrunch.com/2016/07/25/remaining-yahoo-to-rebrand-after-sale-of-assets-to-verizon-in-2017/
- ↑ Remains of Yahoo to rebrand and CEO to step down : http://www.capacitymedia.com/Article/3651520/Remains-of-Yahoo-to-rebrand-and-CEO-to-step-down.html
- ↑ Yahoo to rebrand as Altaba Inc. as Marissa Mayer steps down from board: http://nypost.com/2017/01/09/yahoo-to-rebrand-as-altaba-inc-as-marissa-mayer-steps-down-from-board/
- ↑ xMethods Directory formerly at: http://www.xmethods.net/ve2/Directory.po (now only available at backup site)
- ↑ Seekda -- The Business Point of View: http://link.springer.com/chapter/10.1007/978-3-642-19193-0_14?no-access=true
- ↑ seekda -- the Web Service search engine: http://www.slideshare.net/NathalieSteinmetz/seekdas-web-service-search-engine
- ↑ seekda! Enriched Services -- A Tool for Semantic Service Annotation: http://www.academia.edu/468586/seekda_Enriched_Services_A_Tool_for_Semantic_Service_Annotation
- ↑ seekda's Web Service search engine: https://www.meetup.com/Semantically-Webbed-Seattle-Meetup-Group/events/52635992/
- ↑ Public UDDI Registry: http://uddi.xml.org/public-uddi-registry
- ↑ Seekda WS portal: https://www.slideshare.net/INSEMTIVESproject/uab-2011-seekda-webservices-portal
- ↑ QuickPicks Generatory: http://www.lotterypost.com/quickpicks
- ↑ Lottery Predictions by ALC buyers: http://www.lotterypost.com/predictions-state.asp?s=AC
- ↑ Canada Atlantic 49 Lottery Strategies: https://www.smartluck.com/free-lottery-tips/canada-atlantic49-649.htm
- ↑ Atlantic Lottery Corporation – Game Odds: http://www.global-lottery-review.com/atlantic-lottery.html
- ↑ Internet Chuck Norris DataBase (ICNDB): http://www.icndb.com/api/
- ↑ Transforming SOAP-Messages with XSLT (ARCHIVE): http://web.archive.org/web/20120704161053/http://blog.jdevelop.eu/2008/03/24/transforming-soap-messages-with-xslt/
- ↑ Creating generic SOAP Web Services: http://blog.jdevelop.eu/?p=71
- ↑ http://cxf.apache.org/docs/jax-rs-and-jax-ws.html
- ↑ Java EE 7 and JAX-RS 2.0: http://www.oracle.com/technetwork/articles/java/jaxrs20-1929352.html
- ↑ Changing the default XML namespace prefix generated with JAXWS: https://stackoverflow.com/questions/3846121/changing-the-default-xml-namespace-prefix-generated-with-jaxws
- ↑ Soap envelope namespace prefix in Java web service: https://stackoverflow.com/questions/30623419/soap-envelope-namespace-prefix-in-java-web-service
- ↑ How do I add package level annotations or edit package-info.java?: https://stackoverflow.com/questions/8405336/how-do-i-add-package-level-annotations-or-edit-package-info-java
- ↑ Package annotations: http://puredanger.github.io/tech.puredanger.com/2007/02/28/package-annotations/
- ↑ What is JAXB generated package-info.java: https://stackoverflow.com/questions/7501494/what-is-jaxb-generated-package-info-java
- ↑ You Can't Buy Integration: https://martinfowler.com/articles/cant-buy-integration.html