How to Create SharePoint Environment for group of companies with separate Active Directories - sharepoint-2013

I have a requirement where my company CEO bought three more companies and now became 4 companies. Every company has its own Active Directory and they are on different locations within a city. How would I use different AD's for SharePoint? What kinda network do we need to bring so all companies can access SharePoint from there locations? etc
Got a requirement to implement SharePoint so all companies can work in collaborative manner and get alerts using email as well. Can anyone let me know what needs to be done in a proper sequence manner.
1?
2?
3?
I would really appreciate your help.

Related

Predictive Personalisation between different multi-tenancy sitecore websites

We have different instances of websites some of them with up to 4 multisites each. They have their own XDB backend.
We have a requirement below:
Able to track the user between each sites. When user visits the dental site and comes to company main site then show the carousel
banner with dental Ads.
When user fills up the form or download certain PDF documents, increase the accumulated goals. e.g. if user visits dental site and
fills up form (worth 10 points) and goes to different site and
downloads pdf (worth 5 points). The total goal value accumulated
should be 15.
Should be able to view the exact same user profile details (on each instances).
I understand we could use Federated experience manager, but above all are sitecore instances.
Would you able to help us how above can be achieved?
e.g.
Do we need to share same xDB and analytics Databases for ALL INSTANCES?
Does all sites need to be on SINGLE instance to achieve above?
Is it possible to share goals, personas, segments setup between different instances?
Any other recommendations?
Finally how does sitecore works out the predictive personalization i.e. it reads the xDB or analytics or something else?
Thanks.
Do we need to share same xDB and analytics Databases for ALL
INSTANCES? Yes.
Does all sites need to be on SINGLE instance to achieve
above? All sites can exist on separate instances, not an issue here.
Is it possible to share goals, personas, segments setup
between different instances? Yes share the xDB among the instance, setup Database replication in CD and make sure machine key are same Please note that there lot of other things to be considered for coming to conclusion on this point.
More reference links:
http://digital-learnings.blogspot.in/2015/12/sitecore-multi-site-or-multi-instance.html
https://doc.sitecore.net/sitecore_experience_platform/developing/xdb_overview/scalability_options
http://www.nonlinearcreations.com/Digital/how-we-think/whitepapers/Whitepaper-Planning-your-Sitecore-xDB-infrastructure.aspx

Microservices Architecture: Cross Service data sharing

Consider the following micro services for an online store project:
Users Service keeps account data about the store's users (including first name, last name, email address, etc')
Purchase Service keeps track of details about user's purchases.
Each service provides a UI for viewing and managing it's relevant entities.
The Purchase Service index page lists purchases. Each purchase item should have the following fields:
id, full name of purchasing user, purchased item title and price.
Furthermore, as part of the index page, I'd like to have a search box to let the store manager search purchases by purchasing user name.
It is not clear to me how to get back data which the Purchase Service does not hold - for example: a user's full name.
The problem gets worse when trying to do more complicated things like search purchases by purchasing user name.
I figured that I can obviously solve this by syncing users between the two services by broadcasting some sort of event on user creation (and saving only the relevant user properties on the Purchase Service end). That's far from ideal in my perspective. How do you deal with this when you have millions of users? would you create millions of records in each service which consumes users data?
Another obvious option is exposing an API at the Users Service end which brings back user details based on given ids. That means that every page load in the Purchase Service, I'll have to make a call to the Users Service in order to get the right user names. Not ideal, but I can live with it.
What about implementing a purchase search based on user name? Well I can always expose another API endpoint at the Users Service end which receives the query term, perform a text search over user names in the Users Service, and then return all user details which match the criteria. At the Purchase Service, map the relevant ids back to the right names and show them in the page. This approach is not ideal either.
Am I missing something? Is there another approach for implementing the above? Maybe the fact that I'm facing this issue is sort of a code smell? would love to hear other solutions.
This seems to be a very common and central question when moving into microservices. I wish there was a good answer for that :-)
About the suggested pattern already mentioned here, I would use the term Data Denormalization rather than Polyglot Persistence, as it doesn't necessarily needs to be in different persistence technologies. The point is that each service handles its own data. And yes, you have data duplication and you usually need some kind of event bus to share data across services.
There's another option, which is a sort of a take on the first - making the search itself as a separate service.
So in your example, you have the User service for managing users. The Purchases services manages purchases. Each handles its own data and only the data it needs (so, for instance, the Purchases service doesn't really need the user name, only the ID). And you have a third service - the Search Service - that consumes data produced by other services, and creates a search "view" from the combined data.
It's totally fine to keep appropriate data in different databases, it's called Polyglot Persistence. Yes, you would like to keep user data and data about purchases separately and use message queue for sync. Millions of users seems fine to me, it's scalability, not design issue ;-)
In case of search - you probably want to search more than just username, right? So, if you use message queue to update data between services you can also easily route this data to ElasticSearch, for example. And from ElasticSearch perspective it doesn't really matter what field to index - username or product title.
I usually use both approaches. Sometimes i have another service which is sitting on top on x other services and combines the data. I don't really like this approach because it is causing dependencies and coupling between services. So in general, within my last projects we tried to stick to polyglot persistence.
Also think about, if you need to have x sub http requests for combining data in some kind of middleware service, it will lead you to higher latency. We always try to cut down the amount of requests for one task and handle everything what is possible through asynchronous queues. ( especially data sync )
If you conceptualize modules as the owners and controllers of the data they work on, then your model must also communicate that data out of that module to others. In contrast, the modules in a manufacturing process have the access to change data without possessing and controlling it.
Microservices is an architecture for distributed processing, like most code, where modules pass the data around to work on it. From classic articles by Harvard Business Review and McKinsey on the subject of owning members of a supply chain, I identified complexities arising from this model and wrote an article teaching programmers what you need to know: http://www.powersemantics.com/p.html
Manufacturing is an architecture for integrated processing, where modules work on the data without passing it around from point to point. This can be accomplished by having modules configured to access the same memory, files or database tables. My architecture shows how to accomplish this on memory via reference properties.
When you consider "exposing an API at the Users Service end which brings back user details based on given ids", you need to be aware that creates what HBR calls "irreversible" complexity, which I've dubbed centralization complexity. Don't build A->B (distributed) systems, because you can't decentralize them later after failing to separate requirements. Requirements in production processes represent user instructions, and centralized modules only enable you to change the wrong users' processes. In other words, centralized modules don't document user groups or distinguish them from derived-product-users.

Setup Microsoft Dynamics NAV for a consultancy company

I've created a firm in Microsoft NAV but I have problems to set it up for a consultancy company.
But I'm not sure if I'm doing it right, should i create my consultants as Servicearticles?
I´ve created the various workplaces they can be placed in (our companies costumers) so we can put the consultants in different companies. But is it the right way to go? And if someone would be nice to explain how we can setup timesheets for these consultants that would be awesome!
Best regards three students trying to pass a course.
The best practise is to create your consultants as resources.
The resources can be attached to userid who is going to enter lines in the timesheet, and the userid that needs to approve the timesheet lines.
For more info regarding the timesheet:
http://msdn.microsoft.com/en-us/library/hh175155%28v=nav.70%29.aspx
Good luck with passing your course!

Nopcommerce registering new shops

In shopify if I create a new store I get my own admin panel. I am going through nopcommerce and it appears to me that a single installation is built for only one shop admin. So if I am running nopcommerce from my site I can not let users register and create new stores - I could run 1 store though?
Is this understanding correct or nopcommerce lets users register and create new shops?
I think you're misunderstanding nopCommerce. It's not a SaaS platform like Shopify, but a full on-site installation of an ecommerce application.
In recent versions, you can manage more than 1 store with the same installation, so that different domains point to different stores. However, in my opinion this is intended to have different shops under the same owner, so you don't have to set up another server/hosting plan for each shop you want to run.
When having multiple stores, you can assign products, categories and so to a specific store.
See more information at http://www.nopcommerce.com/featurelist.aspx
Quote from above:
With multi-store support you can launch several online stores using a single integrated system. You can create unique online stores for multiple brands, products, B2B, B2C, affiliates, co-branded stores and more. You can also quickly launch micro-stores for promotional campaigns. Best of all, every online store shares a single database.

Data mining? And how can I perform it on my website?

I’m preparing my graduation project from computer science, I made this website and it's running perfectly but my supervisor requested me to apply data mining on the website.
But I don’t understand what I should do.
The website is a social network, each user will have a profile and blog and access to some e-books that required you to be registered so you can download. The website also contains a music server that contains songs that a registered user can choose a song to download or to add it as a favorite in his profile page, the website contains ads (I used OpenX script), so this is most of the website services where I can perform data mining, the website is www.sy-stu.com.
I need ideas and what is the best way to present it in the interview?
You can ask your professor what was his intention of using data mining. Data mining algorithms can do various tasks, you need first define what you want to accomplish and then find some algorithms for this and technical possibilities.
Some ideas that came to my mind about usage of data mining in your project:
you can use data mining to find what songs (ebooks,etc.) can be favorited by a user based on other people favorites songs (find similarities, probably association rules would be a good algorithm for this).
you can use some clustering algorithms to group users based on some parameters and suggest them that they could become a connections with other people from the same group (if you have something like this)
Good luck!:)
Firstly, ask for clarification from your supervisor. Don't say 'What do you mean?', but ask 'Are you expecting something like this?' because it shows that you've at least thought about it.
If you can't think of anything, or your supervisor is vague, perform some simple data retrieval and analysis, e.g.
most active members
the most / least popular songs and books.
number of ads clicked etc
most popular website features
Just elementary analysis should suffice - you aren't doing a statistics degree. Work out the most songs downloaded in a day or per user, the average songs per user, how many users visit each day and how many sign up and never visit.
The purpose is to demostrate that your website is logging all activity, so that when you are asked 'how many books did the 20 most active users download in June' you will be able to work out the answer.
The alternative is a website that just runs and you don't have any knowledge of how your users are behaving and what they are doing, which means you aren't able to focus on things that they find important.
I dont know exactly what kind of data you are trying to mine, but have you check out google analytics? It is very easy to setup, once you register all you need is to include the javascript provided to your web pages. Google analytics will give you plenty of statistic about access to your site information regarding your site and visits. Is that what you need? The data produced is very easy to read as well and will be suitable for you to present I reckon.