ورود

View Full Version : حرفه ای: لایسنس گذاشتن روی نرم افزارهای جاوا



csharpspider
پنج شنبه 17 مرداد 1392, 23:15 عصر
با سلام خدمت جاواکارهای نازنین

وقتی یک برنامه کاربردی نوشتید و میخواهید بفروشید با چه کدی لایسنس میزارید؟؟؟ مثلا میخوام 2 تا گزینه داشته باشه هنگام شروع برنامه / 1 - رجیستر (وقتی مشتری کد لایسنس رو بزنه اکتیو شه) 2 - evaluate (مثلا 30 روز)
100 درصد همتون آخر برنامتون این کار رو میکنید / حالا از یکی از شما جاواکارها درخواست میکنم این روش رو یا بهتر بگم کدش رو بمن یاد بدن / مرسی

javaphantom
جمعه 18 مرداد 1392, 12:27 عصر
licence گذاشتن می تونه یکی از موارد روی زمان باشه و اما مهمترین قسمتش روی کارایی برنامه تاثیز می زاره. یعنی چی؟ مثلا دو گزینه رو غیر فعال نشون می ده یا قابلیت هاشو محدود می کنه. مثلا می گه بیشتر از ۳ کاربر نمی تونن باهاش کار کنن.

حالا بریم سر اصل مطلب چطوری

ا. استفاده از فریم ورک ها مثل
http://java.nicholaswilliams.net/LicenseManager/
http://codelicmgr.sourceforge.net/

در غیر این صورت شما باید خودتون باید دست به کار بشید و یک ماژول جدا به نام licence manager رو بنویسید که دانستن مفهوم AOP یا همان Aspect Oriented بسیار الزامی می باشد.

csharpspider
جمعه 18 مرداد 1392, 20:55 عصر
licence گذاشتن می تونه یکی از موارد روی زمان باشه و اما مهمترین قسمتش روی کارایی برنامه تاثیز می زاره. یعنی چی؟ مثلا دو گزینه رو غیر فعال نشون می ده یا قابلیت هاشو محدود می کنه. مثلا می گه بیشتر از ۳ کاربر نمی تونن باهاش کار کنن.

حالا بریم سر اصل مطلب چطوری

ا. استفاده از فریم ورک ها مثل
http://java.nicholaswilliams.net/LicenseManager/
http://codelicmgr.sourceforge.net/

در غیر این صورت شما باید خودتون باید دست به کار بشید و یک ماژول جدا به نام licence manager رو بنویسید که دانستن مفهوم AOP یا همان Aspect Oriented بسیار الزامی می باشد.

مهندس جان در هر صورت شما برای برنامه های نوشته شده خودتون لایسنس میزارید و من نمیگم دقیقا همون کدی که خود شما در برنامه هاتون استفاده میکنید بگید اینجا / ولی اگر میشه متفاوت از کد خودتون لایسنس گذاشتن رو قدم به قدم با کد اینجا برامون آموزش بدید / مرسی

javaphantom
جمعه 18 مرداد 1392, 22:51 عصر
مهندس همانطور که بهتون گفتم بنا به نیازتون باید یک ماژول طراحی کنی. ما برای برنامهای نوشته شدمون لایسنس گذاشتیم چون ساختارهای اولیه این قابلیت رو داشتن که بشه این کار رو کرد.
ساختار پروژه شما چی هست؟ از چه تکنولوژیهایی استفاده کردین و و و و.

csharpspider
شنبه 19 مرداد 1392, 00:05 صبح
مهندس همانطور که بهتون گفتم بنا به نیازتون باید یک ماژول طراحی کنی. ما برای برنامهای نوشته شدمون لایسنس گذاشتیم چون ساختارهای اولیه این قابلیت رو داشتن که بشه این کار رو کرد.
ساختار پروژه شما چی هست؟ از چه تکنولوژیهایی استفاده کردین و و و و.

شما در نظر بگیرید من با کد جاوا در Netbeans IDE یک ماشین حساب ساده درست کردم (ماشین حساب رو فقط برای مثال گفتم) و میخوام به هر کسی که بفروشم بتونه استفاده کنه و نتونه پخش کنه / برای این توضیح بدید لطفا

javaphantom
شنبه 19 مرداد 1392, 00:18 صبح
شما در نظر بگیرید من با کد جاوا در Netbeans IDE یک ماشین حساب ساده درست کردم (ماشین حساب رو فقط برای مثال گفتم) و میخوام به هر کسی که بفروشم بتونه استفاده کنه و نتونه پخش کنه / برای این توضیح بدید لطفا

من اگر بخوام بکنم ۱۰۰ در ۱۰۰ یک سرور در نظر می گیرم که جایی هست برای دادن لایسنس به client ها. اینجوری در نظر بگیر که من ماشین حساب رو از یک جا می گیرم حالا سایت یا دوستم. حالا که ماشین حساب می خواد اجرا بشه جایی هست که می ره دنبال لایسنس می گرده و همچنین یک کدی که متعلق به application هست مثلا توی یک فایل کنار برنامه یا تو خود برنامه کامپایل شده می گرده میبینه نیست یک request به آدرس سروری که توش ست کردم می فرسه سرور هم یک کد یکتا و یک لایسنس بر اساس کد به client بر می گردونه کلاینت هم ذخیرش می کنه.

حالا خودت بیشتر می تونی تحلیل بیشتری داشته باشی. خوبی سرور اینکه کسی نمی تونه کرک کنه و پچ بده و از این جور حرفا

csharpspider
شنبه 19 مرداد 1392, 12:54 عصر
من اگر بخوام بکنم ۱۰۰ در ۱۰۰ یک سرور در نظر می گیرم که جایی هست برای دادن لایسنس به client ها. اینجوری در نظر بگیر که من ماشین حساب رو از یک جا می گیرم حالا سایت یا دوستم. حالا که ماشین حساب می خواد اجرا بشه جایی هست که می ره دنبال لایسنس می گرده و همچنین یک کدی که متعلق به application هست مثلا توی یک فایل کنار برنامه یا تو خود برنامه کامپایل شده می گرده میبینه نیست یک request به آدرس سروری که توش ست کردم می فرسه سرور هم یک کد یکتا و یک لایسنس بر اساس کد به client بر می گردونه کلاینت هم ذخیرش می کنه.

حالا خودت بیشتر می تونی تحلیل بیشتری داشته باشی. خوبی سرور اینکه کسی نمی تونه کرک کنه و پچ بده و از این جور حرفا

بله سرور هم خوبه / اگر ممکنه روش سرور رو تحقیق کردی به نتیجه خوب و عملی رسیدی به ما هم بگید

csharpspider
شنبه 19 مرداد 1392, 12:58 عصر
راستی دوستان بعضی برنامه ها هستند که با یک فلش بفروش میرسه / و تا وقتی فلش رو داخل یو-اس-پی نزنی برنامه کار نمیکنه / فکر کنم این هم ایده خوبی باشه / البته من مکانیزم این کار رو بلد نیستم / این جاوا کارهای حرفه ای هم که به ما کمک نمیکنند / دوستان آماتور مثل من اگر اطلاعی در مورد این روش دارند بیان مطرح کنند لطفا

javaphantom
شنبه 19 مرداد 1392, 14:33 عصر
راستی دوستان بعضی برنامه ها هستند که با یک فلش بفروش میرسه / و تا وقتی فلش رو داخل یو-اس-پی نزنی برنامه کار نمیکنه / فکر کنم این هم ایده خوبی باشه / البته من مکانیزم این کار رو بلد نیستم / این جاوا کارهای حرفه ای هم که به ما کمک نمیکنند / دوستان آماتور مثل من اگر اطلاعی در مورد این روش دارند بیان مطرح کنند لطفا

token یا امضای دیجیتالی. باید سخت افزارش رو پیدا کنی. خود این برات داستان می شه.

csharpspider
شنبه 19 مرداد 1392, 22:23 عصر
token یا امضای دیجیتالی. باید سخت افزارش رو پیدا کنی. خود این برات داستان می شه.

میشه زیاد توضیح بدی دوست عزیز
یعنی وقتی من یک برنامه کاربردی نوشتم برم ثبت کنم و براش امضای دیجیتال بگیرم همراه با اون فلشه؟
خواهشا کامل توضیح بدید روش استفاده این رو
و میگید داستان داره یعنی کجاش سخته
خواهشا یه توضیح کلی و مفید درباره این موضوع بدید که اگر منطقی بود دیگه این همه کد برای لایسنس ننویسیم که اون هم شاید آخر سر بعضی ها هک کنند

javaphantom
یک شنبه 20 مرداد 1392, 08:58 صبح
میشه زیاد توضیح بدی دوست عزیز
یعنی وقتی من یک برنامه کاربردی نوشتم برم ثبت کنم و براش امضای دیجیتال بگیرم همراه با اون فلشه؟
خواهشا کامل توضیح بدید روش استفاده این رو
و میگید داستان داره یعنی کجاش سخته
خواهشا یه توضیح کلی و مفید درباره این موضوع بدید که اگر منطقی بود دیگه این همه کد برای لایسنس ننویسیم که اون هم شاید آخر سر بعضی ها *** کنند

همانطور که قبلا هم گفتم بحث ما حول لایسنس می چرخه اما مثل اینکه داریم می ریم سمت security چی که شما الان می خواهین بدونین مفهوم authentication , authorization هست ربطی به لایسنس نداره.

لایسنس هنوزم می گم باید خودتون یک ماژول جدا برای application خودتون بنویسید. محدود کردن کارایی application بنا به نوع لایسنس هست که نیاز شما رو برآورده می کنه.

در پست های اولم هم اشاره کردم که باید با مفهوم و برنامه نویسی AOP آشنایی داشته باشید. حالا نحوی دریافت لایسنس که در پست قبل اشاره کردم می تونه از طریق سرور باشه.

csharpspider
یک شنبه 20 مرداد 1392, 12:47 عصر
همانطور که قبلا هم گفتم بحث ما حول لایسنس می چرخه اما مثل اینکه داریم می ریم سمت security چی که شما الان می خواهین بدونین مفهوم authentication , authorization هست ربطی به لایسنس نداره.

لایسنس هنوزم می گم باید خودتون یک ماژول جدا برای application خودتون بنویسید. محدود کردن کارایی application بنا به نوع لایسنس هست که نیاز شما رو برآورده می کنه.

در پست های اولم هم اشاره کردم که باید با مفهوم و برنامه نویسی AOP آشنایی داشته باشید. حالا نحوی دریافت لایسنس که در پست قبل اشاره کردم می تونه از طریق سرور باشه.

وقتی این یارو token رو میزنیم به USB برنامه کار میکنه و وقتی درش میاریم برنامه کار نمیکنه / خوب این کار لایسنس رو انجام میده دیگه / و ما میتونیم با هر نسخه از برنامه که میفروشیم یک فلش token هم روش بدیم تا فقط یک نفر از اون برنامه بتونه استفاده کنه/ برداشتم اشتباهه ؟؟؟

javaphantom
یک شنبه 20 مرداد 1392, 20:38 عصر
وقتی این یارو token رو میزنیم به USB برنامه کار میکنه و وقتی درش میاریم برنامه کار نمیکنه / خوب این کار لایسنس رو انجام میده دیگه / و ما میتونیم با هر نسخه از برنامه که میفروشیم یک فلش token هم روش بدیم تا فقط یک نفر از اون برنامه بتونه استفاده کنه/ برداشتم اشتباهه ؟؟؟

اون بخاطر اینکه طرف authentication نداره که نمی تونه کار کنه نه اینکه لایسنس نداره. لایسنس محدودیت کارایی رو تعریف می کنه.

مثلا من گواهی نامه پایه دو دارم

این به این معناست که رانندگی به غیر از سواری رو نمی تونم بکنم. ولی اگر سویچ ماشینم نداشته باشم که دیگه کلا نمی تونم رانندگی سواری رو هم بکنم

csharpspider
یک شنبه 20 مرداد 1392, 21:16 عصر
اون بخاطر اینکه طرف authentication نداره که نمی تونه کار کنه نه اینکه لایسنس نداره. لایسنس محدودیت کارایی رو تعریف می کنه.

مثلا من گواهی نامه پایه دو دارم

این به این معناست که رانندگی به غیر از سواری رو نمی تونم بکنم. ولی اگر سویچ ماشینم نداشته باشم که دیگه کلا نمی تونم رانندگی سواری رو هم بکنم

خوب اسمش هر چی هست باشه / وقتی طرف نتونه بدون اون فلشه نرم افزار رو استفاده کنه من به هدفم رسیدم دیگه نه؟ مثلا من یه برنامه ای مینویسم و بعد هر کی خواست بخره من روی هر نسخه که میفروشم یه توکن فلش وصل میکنم و میدم و دیگه طرف دیگه نمیتونه نرم افزار رو پخش کنه چون اگه داد به یکی دیگه باید اون یکی دیگه هم توکن فلش داشته باشه تا ازش استفاده کنه که در اینصورت از کپی شدن برنامه جلوگیری میشه / در نتیجه من بدون نوشتن لایسنس به هدفم که جلوگیری از کپی شدن است میرسم / نه؟

javaphantom
دوشنبه 21 مرداد 1392, 17:12 عصر
خوب اسمش هر چی هست باشه / وقتی طرف نتونه بدون اون فلشه نرم افزار رو استفاده کنه من به هدفم رسیدم دیگه نه؟ مثلا من یه برنامه ای مینویسم و بعد هر کی خواست بخره من روی هر نسخه که میفروشم یه توکن فلش وصل میکنم و میدم و دیگه طرف دیگه نمیتونه نرم افزار رو پخش کنه چون اگه داد به یکی دیگه باید اون یکی دیگه هم توکن فلش داشته باشه تا ازش استفاده کنه که در اینصورت از کپی شدن برنامه جلوگیری میشه / در نتیجه من بدون نوشتن لایسنس به هدفم که جلوگیری از کپی شدن است میرسم / نه؟

اگر واقعا نیازتون رو جواب میده پس دیگه حله

csharpspider
شنبه 16 شهریور 1392, 20:52 عصر
بچه های دیگه هم نظر بدن لطفا

bigtime
پنج شنبه 30 آبان 1392, 01:20 صبح
با سلام
آقا اون چیزی که شما در موردش صحبت می کنید(اون فلش رو می گم) بهش می گن قفل سخت افزاری
بهترین مدلش(تا جایی که من می دونم) بهش میگن Dongle که شرکت ها ازش استفاده می کنن و به این صورت هستش که اون فلش رو sector اولش که meta data توش ذخیره می شه رو میزنن می سوزونن حالا دیگه توی این فلش با format ای که خودشون می دونن یک سری داده ذخیره می کنن بعد از طریق برنامه ای هم که قرار با این فلش اجرا بشه به این اطلاعات دسترسی پیدا می کنن و یک سری پردازش انجام می دن تا بفهمن این همون فلش اصلی هستش یا اینکه یک فلش fake هستش
حالا راه های ساده تری هم داره و اون هم اینکه به فرض شما شماره ی سریال فلش رو چک کنید که البته این خودش دچار مشکل میشه چرا که این شماره ی سریال رو به راحتی با یک نرم افزار می شه عوض کرد و اینطوری قفل شما کرک شده در اصل
بعضی ها هم میان یک کار دیگه می کنن می گن ما یک سری داده بیایم روی فلش مورد نظرمون در نظر بگیریم که با چک کردن این داده ها به صورت بیت به بیت بفهمیم که این همون فلش اصلی هستش یا نه که البته این هم کارش اینکه شما بتونید اطلاعات اون فلش رو بیت به بیت روی یک فلش دیگه کپی کنید و بجای اصلی از اون استفاده کنید
بعضی ها هم میان از اندازه ی خود فلش استفاده می کنن خوب تا حدودی خوبه ولی خوب هر چقدر هم به فرض فلش هایی داشته باشیم که همه 8 گیگ باشن دیگه توی 1000 تا چند تایی پیدا می شن که دقیقا اندازه هاشون هم یکی باشه(پس این هم نشد)
یک راه دیگه اینه که از pnp کد اون فلش استفاده کنید که دیگه این قابل تعویض نیستش(من راهی برای دور زدنش بلد نیستم)
موفق باشید

mihanblog
پنج شنبه 30 آبان 1392, 11:41 صبح
دوست عزیز برنامه install ctreator رو دانلودش کن علاوه بر اینکه فایل exe با شرایطی که خودت مد نظرت هستش درست میکنه و حتی میتونی کد فعال سازی یا کد random تا هر زمانی ک بخوای براش بزاری

csharpspider
یک شنبه 15 دی 1392, 00:43 صبح
با سلام
آقا اون چیزی که شما در موردش صحبت می کنید(اون فلش رو می گم) بهش می گن قفل سخت افزاری
بهترین مدلش(تا جایی که من می دونم) بهش میگن Dongle که شرکت ها ازش استفاده می کنن و به این صورت هستش که اون فلش رو sector اولش که meta data توش ذخیره می شه رو میزنن می سوزونن حالا دیگه توی این فلش با format ای که خودشون می دونن یک سری داده ذخیره می کنن بعد از طریق برنامه ای هم که قرار با این فلش اجرا بشه به این اطلاعات دسترسی پیدا می کنن و یک سری پردازش انجام می دن تا بفهمن این همون فلش اصلی هستش یا اینکه یک فلش fake هستش
حالا راه های ساده تری هم داره و اون هم اینکه به فرض شما شماره ی سریال فلش رو چک کنید که البته این خودش دچار مشکل میشه چرا که این شماره ی سریال رو به راحتی با یک نرم افزار می شه عوض کرد و اینطوری قفل شما کرک شده در اصل
بعضی ها هم میان یک کار دیگه می کنن می گن ما یک سری داده بیایم روی فلش مورد نظرمون در نظر بگیریم که با چک کردن این داده ها به صورت بیت به بیت بفهمیم که این همون فلش اصلی هستش یا نه که البته این هم کارش اینکه شما بتونید اطلاعات اون فلش رو بیت به بیت روی یک فلش دیگه کپی کنید و بجای اصلی از اون استفاده کنید
بعضی ها هم میان از اندازه ی خود فلش استفاده می کنن خوب تا حدودی خوبه ولی خوب هر چقدر هم به فرض فلش هایی داشته باشیم که همه 8 گیگ باشن دیگه توی 1000 تا چند تایی پیدا می شن که دقیقا اندازه هاشون هم یکی باشه(پس این هم نشد)
یک راه دیگه اینه که از pnp کد اون فلش استفاده کنید که دیگه این قابل تعویض نیستش(من راهی برای دور زدنش بلد نیستم)
موفق باشید

bigtime جان یخورده تحقیق کن اطلاعات جمع کن در این مورد تا یک روش درست کنیم برای این مشکل

bigtime
پنج شنبه 29 خرداد 1393, 10:01 صبح
سلام
خوبی شما csharpspider جان؟
آقا شرمنده من این مدت نبودم
من اطلاعات جمع کنم که چه مشکلی رو حل کنیم؟
یک ذره نفهمیدم کدوم مشکل رو شما منظورت هستش

[younes]
شنبه 31 خرداد 1393, 17:09 عصر
درود دوستان

هیچ روشی وجود ندارد که صد در صد حقوق نرم افزار رو حفظ کنه و فقط راه های دور زدنش رو مشکل تر میکنه

روشی که برای من موفقیت آمیز بوده رو با شما به اشتراک میزارم
نرم افزار من یه برنامه web base بود که بتانسیل لازم رو داشت چون برای هر بار اجرا و پایان باید به اینترنت متصل می بود.
این باعث میشد که دونفر از یه نرم افزار کبی در یک زمان نتوانند استفاده کنند. البته حجم برنامه بایین بود و در سرور برای هر مشتری یک مورد یکتا کامپایل میشد
روند کار به این صورته که با هر بار اجرا سریال اختصاصی و یکتا برنامه به سرور ارسال میشه و جواب بازگشتی برای تعیین اعتبار بردازش میشه و محدودیت لازم اعمال میشه

و در کل =>

برای هر مشتری در هنگام خرید اینترنتی یک برنامه اختصاصی ایجاد میشد
در هنگام استفاده تعیین اعتبار اینترنتی صورت میگرفت
قابلیت شارژ مجدد و ارتقاء حساب کاربری برای استفاده بیشتر وجود داشت