-
-
Notifications
You must be signed in to change notification settings - Fork 441
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
API study #237
Comments
API
What is meant by API with example?
What is an API used for?
How does an API work?
What does Filestack do? Uploads GOOGLE CLOUD VISION
Microsoft Cognitive Services
Amazon Rekognition
Performance Testing
Object recognition testing
I prepared a DOC file with all details Please go through it |
APIApplication Programming Interface: An Application Programming Interface (API) is a tool set that programmers can use in helping them create software. A good API will have clear and concise commands that a programmer can use and reuse, so they don't have to build everything over again. There are, many API providers, but Amazon, Google, and Microsoft top all of them in the context of AI or ML.
From the above table, we can clearly see, that Google does not provide the benefits of text-speech APIs. A better API for any text-speech or speech-text is that which have the least errors. Below table, shows a brief comparison of that - Voice recognition:Apart from speech recognition, voice recognition can also be another criteria to discuss upon. Cloud Machine Learning:As these 3 compaines are the leading API providers for AI,ML, it is very interesting to the differences between them, |
In response to Issue : Image Analysis API’s Comparison of Amazon, Microsoft, and GoogleThe battle from web browsers and online search has progressed into another arena — Artificial Intelligence. A battle that every IT organization today wants to win through key AI talent hires and acquisitions. The race to develop and deploy powerful AI tools is one of the hottest topics in the tech world and organizations in every industry are already investing a hefty sum in AI-based tools to boost business profitability. Tech biggies like Amazon, Microsoft, and Google are the forerunners leveraging artificial intelligence. These top tech giants are using AI to deliver better products and services by positioning themselves at the crossroads in the challenging and competitive AI race on the road ahead. Before proceeding further we should know a few terms: What is Amazon Rekognition Image? What is Azure Cognitive Services? What is Google Cloud Vision? As in issue, we see all three provide the most common solution, but what is the difference.
|
Though all the three ie. Google, Microsoft and Amazon provide the most common services through Image Analysis API, these leading providers can be compared from their features, speed, accuracy, image size limits, performance, #, use cases, advantages and disadvantages.
|
What is an API?An application programming interface (API) is a computing interface that defines interactions between multiple software intermediaries. It defines the kinds of calls or requests that can be made, how to make them, the data formats that should be used, the conventions to follow, etc. It can also provide extension mechanisms so that users can extend existing functionality in various ways and to varying degrees. Purposebuilding applications, an API (application programming interface) simplifies programming by abstracting the underlying implementation and only exposing objects or actions the developer needs. While a graphical interface for an email client might provide a user with a button that performs all the steps for fetching and highlighting new emails, an API for file input/output might give the developer a function that copies a file from one location to another without requiring that the developer understand the file system operations occurring behind the scenes . APIs for Speech and Text ProcessingAWS Microsoft Azure Google Cloud |
The thought of implementing machine learning sounds unattainable for the majority of businesses. Thanks to companies like Google, Amazon, and Microsoft, it is now possible to get Machine Learning as a service (MLaaS). Machine Learning as a Service: The leading providers of MLaaS include Microsoft Azure Machine Learning, Amazon Machine Learning services, and Google Cloud AI. All of these services facilitate fast training of models as well as deployment. Amazon and Microsoft are clearly the top dogs in enterprise adoption of cloud services such as MLaaS while Google still lags behind. Amazon Web Services(AWS):
The service performs all pre-processing automatically, identifying numerical and categorical fields. In all of these processes, it does not give the user an opportunity to select the methods they would like to use for further pre-processing if necessary.
The main benefit of this tool is the fact that it does not require users to know any machine learning as everything is automated. But it does not offer support for any unsupervised learning approaches. All in all, it is a great solution if you are looking for a fully automated service and do not mind the limitations.
Microsoft Azure:
Google Cloud AI:
5 Factors Businesses Consider Before Choosing an ML Service:
In the case of Amazon, Microsoft, and Google, the capabilities are by and large similar, with flexibility in computing, storage, and networking requirements.
Future for MLaaS: |
Introduction to Multitenancy¶The goal of multitenancy is to maximize resource sharing by allowing multiple users (tenants) to log in and use a single server/cluster at the same time, in a tenant-isolated manner. That is, each user is given the experience of using his/her own server, rather than a shared environment. Multitenancy ensures optimal performance of the system's resources such as memory and hardware and also secures each tenant's personal data.
• Architecture NOTE :- A tenant is property or product within an organization. Each tenant can have several applications deployed to multiple environments and regions. The response format is JSON. The current API version is 2.Parameters: None
A tenant is an isolated domain. The users within this domain can manage their own data and perform their own transactions without being affected by actions carried out in other domains. An individual tenant can carry out the following activities within the boundaries of its own configuration and context module:
WSO2 Carbon supports the following methods for sharing resources among tenants: 3.Tenant loading policy¶ Lazy loading is a design pattern used specifically in cloud deployments to prolong the initialization of an object or artifact until it is requested by a tenant or an internal process. In WSO2 products based on Carbon 4.4.0 or later versions, you have the option of setting the required tenant loading policy by enabling either Lazy Loading or Eager Loading of tenants. Additionally, you can separately control the loading policy for web applications and axis2 services deployed in your tenants using the GhostDeployment setting.
This section describes how the multi tenancy architecture described above works in a request dispatching scenario. 5.Scaling¶ The multi tenancy architecture described above mainly refers to a scenario where a single instance of a Carbon server acts as a single multi tenant node. In a situation where a very high load of requests are handled, you may need multiple multi tenant nodes. In order to operate with multiple multi tenant nodes, you need load balancing. The load balancer you use also needs to be tenant-aware. |
What is Multitenancy?Multitenancy is a reference to the mode of operation of software where multiple independent instances of one or multiple applications operate in a shared environment. The instances (tenants) are logically isolated, but physically integrated. ArchitectureThe multitenant architecture of WSO2 API Manager allows you to deploy Web applications, Web services, ESB mediators, mashups etc. in an environment that supports the following: Tenant isolation: Each tenant has its own domain, which the other tenants cannot access. Data isolation: Each tenant can manage its data securely in an isolated manner. Execution isolation: Each tenant can carry out business processes and workflows independent of the other tenants. No action of a tenant is triggered or inhibited by another tenant. Performance Isolation: No tenant has an impact on the performance of another tenant. A tenant is an isolated domain. The users within this domain can manage their own data and perform their own transactions without being affected by actions carried out in other domains. An individual tenant can carry out the following activities within the boundaries of its own configuration and context module:
WSO2 API Manager provides a number of Admin services which have special privileges to manage the server. These admin services are deployed in the super tenant. Other tenants can make use of these admin services to manage their deployment. The admin services operate in a tenant aware fashion. Thus, privileges and restrictions that apply to any client using an admin service are taken into account. Resource sharingWSO2 API Manager supports the following methods for sharing resources among tenants:
Tenant loading policyLazy loading is a design pattern used specifically in cloud deployments to prolong the initialization of an object or artifact until it is requested by a tenant or an internal process. In WSO2 API Manager, you have the option of setting the required tenant loading policy by enabling either Lazy Loading or Eager Loading of tenants. Additionally, you can separately control the loading policy for web applications and axis2 services deployed in your tenants using the GhostDeployment setting. RestrictionsThe following restrictions are imposed to ensure that each individual tenant has the required level of isolation and maintains fine-grained security control over its own services without affecting the other tenants. Only the super tenant can modify its own configuration. In addition, it can add, view and delete tenants. Request dispatchingThis section describes how the multitenancy architecture described above works in a request dispatching scenario. When a WSO2 API Manager server receives a request, the message is first received by the handlers and dispatchers defined for the server configuration (i.e. super tenant). The server configuration may include handlers that implement cross tenant policies and Service Level Agreement (SLA) management. For example, a priority based dispatcher can be applied at this stage to offer differentiated qualities of service to different clients. Once the relevant handlers and dispatchers are applied, the request is sent to the tenant to which it is addressed. Then the message dispatchers and handlers specific to that tenant will be applied. ScalingThe multitenancy architecture described above mainly refers to a scenario where a single instance of a WSO2 API Manager server acts as a single multitenant node. In a situation where a very high load of requests are handled, you may need multiple multitenant nodes. In order to operate with multiple multitenant nodes, you need load balancing. The load balancer you use also needs to be tenant-aware. |
What is MULTITENANCY Architecture? The term "software multitenancy" refers to a software architecture in which a single instance of software runs on a server and serves multiple tenants. Systems designed in such manner are often called shared (in contrast to dedicated or isolated). A tenant is a group of users who share a common access with specific privileges to the software instance. With a multitenant architecture, a software application is designed to provide every tenant a dedicated share of the instance - including its data, configuration, user management, tenant individual functionality and non-functional properties. Multitenancy contrasts with multi-instance architectures, where separate software instances operate on behalf of different tenants. Why Multitenancy? • Cost savings Multitenant Applications in Azure A multitenant application is a shared resource that allows "users in separate tenants" to view the application as though it was their own. A typical scenario that lends itself to a multitenant application is one in which all users of the application from different tenants may wish to customize the user experience but otherwise have the same basic business requirements. Examples of large multitenant applications are Microsoft 365, Outlook.com, and visualstudio.com. From an application provider's perspective, the benefits of multitenancy mostly relate to operational and cost efficiencies. One version of your application can meet the needs of many tenants/customers, allowing consolidation of system administration tasks such as monitoring, performance tuning, software maintenance, and data backups. The following provides a list of the most significant goals and requirements from a provider's perspective. • Provisioning: You must be able to provision new tenants for the application. For multitenant applications with many tenants, it is usually necessary to automate this process by enabling self-service provisioning. A properly implemented multitenant application provides the following benefits to users. • Isolation: The activities of individual tenants do not affect the use of the application by other tenants. Tenants cannot access each other's data. It appears to the tenant as though they have exclusive use of the application. API management with multi-tenancy WSO2 API Manager allows users to control API visibility and subscription availability. API visibility can be one of the following options: • Public: The API is accessible to everyone and can be advertised in multiple stores - a central store and/or non-WSO2 stores. Subscription availability has three options. Those options are as follows: • Available to current Tenant Only: Only users in the current organization/tenant domain can subscribe to the API |
What is Multitenancy? | Multitenant ArchitectureMultitenancyWhat is Multitenancy? In cloud computing, multitenancy means that multiple customers of a cloud vendor are using the same computing resources. Despite the fact that they share resources, cloud customers aren't aware of each other, and their data is kept totally separate. Multitenant architecture is a feature in many types of public cloud computing, including IaaS, PaaS, SaaS, containers, and serverless computing. To understand multitenancy, think of how banking works. Multiple people can store their money in one bank, and their assets are completely separate even though they're stored in the same place. Customers of the bank don't interact with each other, don't have access to other customers' money, and aren't even aware of each other. Similarly, in public cloud computing, customers of the cloud vendor use the same infrastructure – the same servers, typically – while still keeping their data and their business logic separate and secure. The classic definition of multitenancy was a single software instance that served multiple users, or tenants i.e. A multi-tenancy is a software architecture that implies centralized administration. It means that a single instance of an application serves many customers (called also tenants) and each one has access to shared resources (Code, storage, and networking). What are the benefits of multitenancy? Many of the benefits of cloud computing are only possible because of multitenancy. Here are two crucial ways multitenancy improves cloud computing:
What are the drawbacks of multitenancy?
Multitenant ArchitectureMultitenant architecture is an ecosystem or model, in which a single environment can serve multiple tenants utilizing a scalable, available, and resilient architecture. The underlying infrastructure is completely shared, logically isolated, and with fully centralized services. The multitenant architecture evolves according to the organization or subdomain and is totally transparent to the end-user. Let’s take a look at the architecture first. The example below is designed based on N-tire architecture and has the following layers:
Further reading - The key component of tenant separation is ContextFactory that contains logic to get the tenant id from the HTTP header, retrieve a tenant database name using DataBaseManager and replace a database name in the connection string. As a result, a database context (Entity Framework context) is created. Implementation
|
Multi-Tenancy:It is an architecture in which a single instance of a software application serves multiple customers. Each customer is called a tenant. Tenants may be given the ability to customize some parts of the application, such as the color of the user interface (UI) or business rules, but they cannot customize the application's code. Importance of multi-tenancyMulti-tenancy has seen a lot of could adoption and is used most with cloud computing. Multi-tenant architectures are found in both public cloud and private cloud environments, allowing each tenant's data to be separated from each other. For example, in a multi-tenant public cloud, the same servers will be used in a hosted environment to host multiple users. Each user is given a separate and ideally secure space within those servers to store data. Types of multi-tenant architectureThere are three main multi-tenancy model types, all with varying levels of complexity and costs. A single, shared database schema is a multi-tenancy model with a multi-tenant database. This is the simplest form out of the three and is a relatively low cost for tenants because of the use of shared resources. This form uses a single application and database instance to host tenants and store data. Using a single, shared database schema allows for easier scaling; however, operational costs can be higher. Multi-tenant vs. single-tenantMulti-tenancy can be contrasted with single-tenancy, an architecture in which each customer has their own software instance and may be given access to source code. In single-tenant architectures, a tenant will have a singular instance of a SaaS application dedicated to them, unlike multi-tenancy where there are shared services. Because each tenant is in a separate environment, they are not bound in the same way that users of shared infrastructure would be; meaning single-tenant architectures are much more customizable. |
Multi-tenancy is an architecture in which a single instance of a software application serves multiple customers. Each customer is called a tenant. Tenants may be given the ability to customize some parts of the application, such as the color of the user interface or business rules, but they cannot customize the application's code. In a multi-tenant architecture, multiple instances of an application operate in a shared environment. This is able to work because each tenant is integrated physically, but logically separated; meaning that a single instance of the software will run on one server and then serve multiple tenants. In this way, a software application in a multi-tenant architecture can share a dedicated instance of configurations, data, user management and other properties. When it comes to multi-tenancy the only variant is the tenant Id. Since its a stateless system, the system needs to know tenant information in order to process the request and get the corresponding resources. For example, each tenant’s data either get saved in different tenant database or separated with tenant id as a namespace. The only option for the backend to access the tenant-specific is to send the tenant identifier part of every API. A URL contains scheme/protocol and a domain. Every URL get differentiated from others by changing the path or query param. The methods in which a tenant can get identified as part of REST API are
|
Multi-tenancy conceptsThere are already several multi-tenancy architecture design patterns available. Our concept can be used to apply any of these. But let us briefly look into three common patterns. To satisfy the requirements mentioned above, the data of the tenants must be separated. Three typical ways of data separation for databases are: When designing a multi-tenant SaaS application, you must carefully choose the tenancy model that best fits the needs of your application. A tenancy model determines how each tenant's data is mapped to storage. Your choice of tenancy model impacts application design and management.
• Tenant isolation:
• Per-tenant cost:
• Development complexity:
• Operational complexity:
• Customizability:
Application level isolation
Another available pattern is to store many tenants in a multi-tenant database. The application instance can have any number of multi-tenant databases. The schema of a multi-tenant database must have one or more tenant identifier columns so that the data from any given tenant can be selectively retrieved.
Example of an Architechture of Multitenancy at a Bank Application: Multi-tenancy @ AWS Multi-tenancy @ Google
Multi-tenancy @microsoft Azure Why Multi-tenancy is a win-win situation |
MultitenancyMultitenancy is a reference to the mode of operation of software where multiple independent instances of one or multiple applications operate in a shared environment. The instances (tenants) are logically isolated, but physically integrated. The degree of logical isolation must be complete, but the degree of physical integration will vary. The more physical integration, the harder it is to preserve the logical isolation. The tenants (application instances) can be representations of organizations that obtained access to the multitenant application (this is the scenario of ISV offering services of an application to multiple customer organizations). The tenants may also be multiple applications competing for shared underlying resources (this is the scenario of a private or public cloud where multiple applications are offered in a common cloud environment). Multi-Tenant ArchitectureMulti-tenant architecture, commonly referred to as multitenancy, is a software architecture in which multiple single instances of software run on a single physical server. The server then serves multiple tenants. This is the opposite of single-tenancy, in which the server runs one instance of the operating system and one application. This one application could be something simple like file and print apps, complexes like Web or application servers, or mission-critical, such as a database. ApplicationsMultitenancy is often used in cloud computing, to offer shared tenancy on public cloud providers like Amazon Web Services and Microsoft Azure. Additionally, multitenancy is a key part of another cloud model, software as a service, and so is deployed by many software as a service companies. Advantages of Multi-Tenant HostingThe chief advantage of multi-tenant hosting is that it is less expensive. The resource pooling greatly reduces the cost since you only pay for what you need. And since multi-tenant is part of a SaaS provider, you are not paying for on-premises hardware. Functions like system monitoring and servicing the deployment become shared among all of the customers, which makes it less expensive as the cost is spread around. There are other advantages as well.
Disadvantages of Multi-Tenant HostingDespite its cost advantage, multi-tenant environments have some downsides.
|
APIAPI stands for Application Programming Interface, which is a mechanism that allows the interaction between two applications using a set of rules. Types of Web APIsThere are four main types of APIs:
Many companies are providing different APIs for text & speech recognition, video & Image analysis, different ML predictive algorithms, etc. examples of some companies are Amazon, Google, Microsoft, IBM, etc. APIs for text and speech recognition:These APIs can easily be embedded by a programmer. It helps in receiving the speech from the user and convert it into text, then interpreted that text to get the meaning and do the task as per the instruction. Some examples are Amazon lex, amazon transcribe, Bing Speech API & Speaker Recognition API by Microsoft, Cloud natural language API, Cloud Speech API, and Cloud Translation API by Google. APIs for image and video recognition:These APIs get input as Images or Videos, identifies objects inside the image like identifying faces, vehicles, and their number, identifies different animals, recognize places from the maps, etc. Some APIS are Amazon Rekognition, Microsoft Azure Cognitive Services, Cloud Vision API, AutoML video intelligence classification API & AutoML vision API by Google. Comparison between APIs providers ( Amazon(AWS), Microsoft(Azure), Google(Google Cloud)
|
Amazon, Microsoft and Google are the leading solution providers in AI.
These are the solutions provided by these three,
As you can see all three provide the most common solution, but what is the difference.
This issue is for studying the differences between these three solution providers.
After studying, comment the difference in all three in tabular format.
Note: Just do the surface study for now, we'll study separate API's later.
The text was updated successfully, but these errors were encountered: